Как связать цвет внутри ресурса 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,

Другие вопросы по тегам