У меня есть "ResourceDictionary1.xaml" файл для управления цветами в "MainWindow.xaml" (предназначен для создания скинов), и он работает нормально.
Чтобы иметь гибкость в отношении цветов, я определил отдельный SolidColorBru sh ресурс для каждого отдельного элемента управления. Но большую часть времени несколько SolidColorBru sh используют одного цвета для чистого вида.
Теперь, когда я хочу изменить цвет, мне нужно изменить его во всех ресурсах SolidColorBru sh. Поэтому я хочу связать все цвета SolidColorBru sh с одним ресурсом Color. Когда мне нужен полный контроль, я могу просто удалить привязку и указать другой цвет.
Поэтому я создал цветовой ресурс в файле ResourceDictionary. Но при попытке связать цвет ключ не отображается в intelliSense VisualStudio.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPFWindow.Skins"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Color x:Key="DarkH">#444444</Color>
<Color x:Key="DarkM">#555555</Color>
<Color x:Key="DarkL">#666666</Color>
<sys:String x:Key="TitleName">My App</sys:String>
<sys:Double x:Key="TitleBarHeight">32</sys:Double>
<SolidColorBrush x:Key="CicleMOut" Color="#aaaaaa"/>
<SolidColorBrush x:Key="CicleMOver" Color="#dddddd"/>
<Thickness x:Key="CircleMargin">8</Thickness>
<SolidColorBrush x:Key="TitleBarMOut" Color="#555555"/>
<SolidColorBrush x:Key="TitleBarMOver" Color="#555555"/>
<SolidColorBrush x:Key="ExitMOut" Color="#555555"/>
<SolidColorBrush x:Key="ExitMOver" Color="#666666"/>
<SolidColorBrush x:Key="ExitCross" Color="#aaaaaa"/>
<Thickness x:Key="CrossMargin">12</Thickness>
<sys:Double x:Key="CrossThickness">2</sys:Double>
<SolidColorBrush x:Key="MaxiMOut" Color="#555555"/>
<SolidColorBrush x:Key="MaxiMOver" Color="#666666"/>
<SolidColorBrush x:Key="MaxiBox" Color="#aaaaaa"/>
<Thickness x:Key="BoxMargin">12</Thickness>
<sys:Double x:Key="BoxThickness">1</sys:Double>
<SolidColorBrush x:Key="MiniMOut" Color="#555555"/>
<SolidColorBrush x:Key="MiniMOver" Color="#666666"/>
<SolidColorBrush x:Key="MiniBar" Color="#aaaaaa"/>
<Thickness x:Key="BarMargin">12</Thickness>
<sys:Double x:Key="BarThickness">1</sys:Double>
<SolidColorBrush x:Key="TitleBrs" Color="#aaaaaa"/>
<sys:Double x:Key="TitleFontSize">14</sys:Double>
<SolidColorBrush x:Key="FrmBdy" Color="#666666" />
Скажем, я хочу связать цвет SolidColorBru sh с цветом DarkH.
<SolidColorBrush x:Key="FrmBdy" Color="{Binding DarkH}" />
Это не работает. Я узнал, что связывание таким способом невозможно.
Тогда есть ли другой способ сделать так, чтобы несколько кистей относились к одному цвету?
Потому что, когда есть, скажем, 20 или более SolidColorBru sh, изменение цветов в каждом bru sh на один и тот же цвет звучит неэффективно и не может использовать один SolidColorBru sh по вышеуказанной причине гибкости.
Я новичок в WPF и перенесен из WinForms. Все еще пытаюсь сделать некоторые промежуточные вещи WPF. Спасибо.