Я пытаюсь сделать цветовую схему моего приложения динамической, чтобы иметь значение цвета в свойстве (надеюсь, исходящем из базы данных), которое определяет цветовую схему моего приложения.
У меня есть файл Resources.xaml, в котором я задаю цвета и стили для приложения, которые затем использую во всех своих элементах управления и окнах. Я хотел бы привязать цвет SolidColorBrush в файле ресурсов к свойству в моих моделях представления, чтобы этот цвет мог изменяться в зависимости от текущего значения приложения. Вот то, что у меня есть до сих пор, но оно не работает, поэтому я должен что-то упустить.
Код в файле 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}">
DataContext моего MainWindow.xaml — это класс с именем ApplicationViewModel, который наследуется от ViewModelBase, у которого есть свойство «MainApplicationColor», возвращающее строку «Teal», чтобы изменить цвет этой SolidColorBrush из ее FallbackValue. Сейчас я жестко кодирую цвет, но именно здесь я хотел бы получить свое значение из базы данных в будущем. В настоящее время цвет не меняется, поэтому я предполагаю, что в моем источнике привязки что-то не так, поскольку он явно не работает, как я думаю, должен.
Спасибо,
Клара