Как связать цвет внутри ресурса Windows в wpf
У меня есть пользовательский элемент управления вкладками, где цвета приведены в
<Window.Resources>
<Color x:Key="TabControl_BackgroundColor_Base" >Blue</Color>
.......
</Window.Resources>
Как связать цвет = синий с DynamicResource. Так что синий может быть коричневым, красным, белым, зеленым в зависимости от выбора пользователя.
Говоря об этом, я имею в виду, что пользователи могут менять цвет. Теперь я пишу как синий здесь. Я хочу, чтобы он был динамическим, например, я даю динамический цвет фону моих окон в моем приложении.
Background="{DynamicResource DynamicBG}"
Есть ли способ выполнить эту задачу без значительного изменения кода?
1 ответ
Это должно быть сделано с использованием XAML и кода. Во-первых, в XAML добавить элемент управления (например, ComboBox с именем cmbColor
), чтобы выбрать цвет и заполнить его всеми цветами, которые вы упомянули. Во-вторых, в коде за объявлением описатель события для этого ComboBox, как показано ниже:
cmbColor.SelectrionChanged+=()=>
{
// assign color to your win or main grid background using switch statement
switch(cmbColor.Text)
{
case "Blue": gridMain.Background = Brushes.Blue; break;
case "Green": gridMain.Background = Brushes.Green; break;
default: break;
}
}
Кроме того, вы можете добавить все цвета, чтобы выиграть ResourceDictionary (или даже создать тему для каждого), который может выбрать пользователь.
Rgds,