使用数据绑定xaml UWP更改其他页面中网格的颜色
我在一个UWP应用程序中,在MainPage中有一个网格,在BlankPage1中有另一个网格,我想同时使用数据绑定更改MainPage中网格和BlankPage1中网格的颜色 密码 颜色类别:使用数据绑定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颜色通用 {
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很好地实现这一点。您如何给我举个例子?。这应该让你开始我已经看到了一些例子,但是使用了一个不能改变的资源。如何使其动态化?您能解释一下使用无法更改的资源是什么意思吗?