我正在尝试使我的应用程序的配色方案动态化,以便我可以在确定我的应用程序配色方案的属性(希望来自数据库)中有一个颜色值。
我有一个 Resources.xaml 文件,我在其中设置应用程序的颜色和样式,然后在我的所有控件和窗口中使用它们。我想将资源文件中 SolidColorBrush 的颜色绑定到我的 ViewModel(s) 中的属性,以便此颜色可以根据当前应用程序值更改。这是我到目前为止所拥有的,但它不起作用,所以我一定错过了一些东西。
Resources.xaml 文件中的代码:
<SolidColorBrush x:Key="ApplicationMainBackgroundBrush" Color="{Binding Path=MainApplicationColor, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ApplicationArchitecture:ViewModelBase}, Mode=FindAncestor}, FallbackValue=CornflowerBlue}"/>
MainWindow.xaml 文件中的代码:
<Grid Grid.Row="0" x:Name="gridControl" Background="{DynamicResource ApplicationMainBackgroundBrush}">
我的 MainWindow.xaml 的 DataContext 是一个名为 ApplicationViewModel 的类,它继承自 ViewModelBase,它有一个属性“MainApplicationColor”,返回字符串“Teal”,以改变 SolidColorBrush 的颜色,使其与 FallbackValue 不同。我现在正在对颜色进行硬编码,但这是我希望将来从数据库中获取价值的地方。颜色目前没有改变,所以我假设我的绑定源有问题,因为它显然没有像我认为的那样工作。
谢谢,
克拉拉