使用数据绑定xaml UWP更改其他页面中网格的颜色

使用数据绑定xaml UWP更改其他页面中网格的颜色,xaml,data-binding,uwp,Xaml,Data Binding,Uwp,我在一个UWP应用程序中,在MainPage中有一个网格,在BlankPage1中有另一个网格,我想同时使用数据绑定更改MainPage中网格和BlankPage1中网格的颜色 密码 颜色类别: class ColorGridClass:INotifyPropertyChanged { 私有SolidColorBrush_colorGenerale=新的SolidColorBrush(Color.FromArgb(255,16,111,151)); 公共SolidColorBrush颜色通用 {

我在一个UWP应用程序中,在MainPage中有一个网格,在BlankPage1中有另一个网格,我想同时使用数据绑定更改MainPage中网格和BlankPage1中网格的颜色

密码

颜色类别:

class ColorGridClass:INotifyPropertyChanged
{
私有SolidColorBrush_colorGenerale=新的SolidColorBrush(Color.FromArgb(255,16,111,151));
公共SolidColorBrush颜色通用
{
get=>\u颜色通用;
设置
{
_颜色一般=数值;
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(nameof(colorGenerale));
}
}
公共事件属性更改事件处理程序属性更改;
}
主页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>
空白页1 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>

如何使用数据绑定更改第二个网格的颜色


提前感谢。

在这种情况下,如果您希望在整个应用程序中保持一致性,您可以使用
Application.Resources
创建一个
SolidColorBrush
,并在需要时使用它绑定颜色/更改颜色

在App.xaml中创建Application.Resources并添加要用作默认
背景的
SolidColorBrush
。在我的情况下,我想使用红色

<Application.Resources>
    <SolidColorBrush x:Key="GridColorSolidBrush" Color="Red" />
</Application.Resources>
现在在你的按钮。点击事件你可以改变颜色如下

<Grid Background="{StaticResource GridColorSolidBrush}">
(Application.Current.Resources["GridColorSolidBrush"] as SolidColorBrush).Color = Colors.Green;
这将更改所有
框架元素的颜色
(在本例中为
网格

您可以找到一个简单的GitHub Repo

下面是我的示例程序的输出


您可以使用StaticResource或Themeresource很好地实现这一点。您如何给我举个例子?。这应该让你开始我已经看到了一些例子,但是使用了一个不能改变的资源。如何使其动态化?您能解释一下
使用无法更改的资源是什么意思吗?