Для проекта я использую палитру цветов Xceed WPF Toolkit, чтобы позволить пользователям выбирать цвет.Эта палитра используется на разных страницах и с нашими собственными цветами.Поэтому я хочу создать один глобальный стиль в Application.xaml
и затем использовать палитру цветов на разных страницах, однако я не могу найти правильно работающий пример того, как создать глобальный стиль с массивом StandardColors
, который создает его вкод и скопируйте / вставьте код на разные страницы.
Надеюсь, кто-нибудь может помочь мне с этим.
Способ, которым я получил его сейчас:
Xaml onкаждая страница / usercontrol:
<xctk:ColorPicker
Name="ClrPcker_Background"
Grid.Row="4"
Grid.Column="1"
Width="300"
Margin="3"
HorizontalAlignment="Left"
SelectedColor="{Binding BackgroundColor, Mode=TwoWay, Converter={StaticResource BrushToColor}, UpdateSourceTrigger=PropertyChanged}"
SelectedColorChanged="ClrPcker_Background_SelectedColorChanged"
ShowRecentColors="True" />
Код для каждой страницы / usercontrol:
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(32, 32, 32), "DarkBackground"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(60, 60, 59), "DarkLightBackground"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(87, 87, 86), "LightGrayBackground"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(231, 76, 60), "RedLight"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(39, 174, 96), "GreenLight"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(52, 152, 219), "BlueLight"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(243, 156, 18), "OrangeLight"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(104, 34, 27), "RedDark"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(25, 110, 61), "GreenDark"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(22, 64, 92), "BlueDark"))
CustomColorList.Add(New Xceed.Wpf.Toolkit.ColorItem(Color.FromRgb(116, 74, 9), "OrangeDark"))
В идеале я также могу использовать наши глобальные UsedColors в качестве ColorItems, которые также добавляются в Application.xaml
<!-- Background colors -->
<Color x:Key="clrDarkBackground">#202020</Color>
<Color x:Key="clrDarkLightBackground">#3C3C3B</Color>
<Color x:Key="clrLightGrayBackground">#575756</Color>
<SolidColorBrush x:Key="scbDarkBackground" Color="{StaticResource clrDarkBackground}" />
<SolidColorBrush x:Key="scbDarkLightBackground" Color="{StaticResource clrDarkLightBackground}" />
<SolidColorBrush x:Key="scbLightGrayBackground" Color="{StaticResource clrLightGrayBackground}" />
<!-- Light Colors -->
<Color x:Key="clrRedLight">#E74C3C</Color>
<Color x:Key="clrGreenLight">#27AE60</Color>
<Color x:Key="clrBlueLight">#3498DB</Color>
<Color x:Key="clrOrangeLight">#F39C12</Color>
<SolidColorBrush x:Key="scbRedLight" Color="{StaticResource clrRedLight}" />
<SolidColorBrush x:Key="scbGreenLight" Color="{StaticResource clrGreenLight}" />
<SolidColorBrush x:Key="scbBlueLight" Color="{StaticResource clrBlueLight}" />
<SolidColorBrush x:Key="scbOrangeLight" Color="{StaticResource clrOrangeLight}" />
<!-- Dark Colors -->
<Color x:Key="clrRedDark">#68221B</Color>
<Color x:Key="clrGreenDark">#196E3D</Color>
<Color x:Key="clrBlueDark">#16405C</Color>
<Color x:Key="clrOrangeDark">#744A09</Color>
<SolidColorBrush x:Key="scbRedDark" Color="{StaticResource clrRedDark}" />
<SolidColorBrush x:Key="scbGreenDark" Color="{StaticResource clrGreenDark}" />
<SolidColorBrush x:Key="scbBlueDark" Color="{StaticResource clrBlueDark}" />
<SolidColorBrush x:Key="scbOrangeDark" Color="{StaticResource clrOrangeDark}" />