繁体   English   中英

全球WPF工具包Colorpicker StandardColors

[英]Global WPF Toolkit Colorpicker StandardColors

对于一个项目,我正在使用Xceed WPF Toolkit colorpicker让用户选择一种颜色。 此颜色选择器用于不同的页面,并带有我们自己的自定义颜色。 因此,我想在Application.xaml创建一个全局样式,然后在不同的页面上使用颜色选择器,但是我找不到如何使用StandardColors数组创建全局样式的正确工作示例,而不能在代码中创建它。将代码复制/粘贴到其他页面上。

希望有人可以帮我解决这个问题。

我现在开始工作的方式是:

Xaml在每个页面/用户控件上:

<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" />

每个页面/用户控件后面的代码:

    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用作也添加到Application.xaml ColorItems。

        <!--  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}" />

您应该考虑创建一个从ColorPicker继承的自定义控件,而不必将项目添加到每个视图的列表中。

然后,您可以例如将颜色添加到控件的构造函数中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM