J'ai dans une application UWP une grille dans MainPage et dans BlankPage1 une autre grille, je voudrais, en même temps, changer la couleur de la grille dans MainPage et grille dans BlankPage1 avec liaison de données.Changer la couleur de la grille dans une autre page avec liaison de données xaml UWP
Le code.
classe Couleur:
class ColorGridClass : INotifyPropertyChanged
{
private SolidColorBrush _coloreGenerale = new SolidColorBrush(Color.FromArgb(255, 16, 111, 151));
public SolidColorBrush ColoreGenerale
{
get => _coloreGenerale;
set
{
_coloreGenerale = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ColoreGenerale)));
}
}
public event PropertyChangedEventHandler PropertyChanged;
}
MainPage XAML:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.DataContext>
<local:ColorGridClass x:Name="ColorOfGrid" ColoreGenerale="Aquamarine"/>
</Grid.DataContext>
<Button x:Name="btnChangeColor" Content="Change Color" Click="btnChangeColor_Click" HorizontalAlignment="Left" Margin="10,10,0,0" Foreground="{Binding }" VerticalAlignment="Top"/>
<Grid Background="{Binding ColoreGenerale, Mode=OneWay}" HorizontalAlignment="Left" Height="500" Margin="10,52,0,0" VerticalAlignment="Top" Width="500">
<TextBlock Text="Grid One" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30,30,0,0"/>
</Grid>
<Frame x:Name="MainFrame" Content="" HorizontalAlignment="Left" Margin="532,10,0,0" VerticalAlignment="Top" Height="1060" Width="1378"/>
</Grid>
MainPage xaml.cs:
public MainPage()
{
this.InitializeComponent();
MainFrame.Navigate(typeof(BlankPage1));
}
private void btnChangeColor_Click(object sender, RoutedEventArgs e)
{
ColorOfGrid.ColoreGenerale = new SolidColorBrush(Colors.Blue);
}
BlankPage1 XAML:
<Grid Background="LightSalmon">
<Grid.DataContext>
<local:ColorGridClass x:Name="ColorOfGrid" ColoreGenerale="Aquamarine"/>
</Grid.DataContext>
<TextBlock Text="Page1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30,30,0,0"/>
<Grid Background="{Binding ColoreGenerale, Mode=OneWay}" HorizontalAlignment="Center" Height="500" Margin="0" VerticalAlignment="Center" Width="500">
<TextBlock Text="Grid Two" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30,30,0,0"/>
</Grid>
</Grid>
Comment puis-je changer la couleur de la deuxième grille en utilisant la liaison de données?
Merci d'avance.
Vous pouvez très bien atteind cela en utilisant un StaticResource ou ThemeResource – Razor
comment pouvez-vous me donner un exemple? – Res
https://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/resourcedictionary-and-xaml-resource-references. Cela devrait vous aider à démarrer – Razor