WPF工具箱颜色选择器编辑模板现在没有可用的颜色



我花了几个小时在谷歌上寻找解决我的问题的方法,但是没有太多的信息可以找到。

我使用的是WPF Toolkit v2.2.1.

我的WPF应用程序中有一个颜色选择器控件,需要自定义样式。我正在编辑App.xaml中的颜色选择器的控制模板,以应用于所有的颜色选择器。

一旦我选择使用模板,所有可用的颜色都会从颜色选择器中消失。我尝试从代码中分配新的可用颜色,但没有成功。

颜色集合在那里,它们只是看起来没有显示。

这就是CP在我的mainwindow.xaml中的定义。

<xctk:ColorPicker x:Name="cpRing" SelectedColorChanged="cpRing_Changed" HorizontalAlignment="Left" Margin="238,5,0,0" VerticalAlignment="Top" Height="20" Width="39" Foreground="Black"/>

控件模板太大,不能粘贴在这里。但这应该很容易通过在wpf窗口中添加CP并在设计视图中右键单击并选择编辑模板来重现。一旦它被应用,颜色就会消失,不改变任何东西。

有人知道编辑控件模板时如何获得可用的颜色显示吗?

是的,它的风格有问题。但是如果你仔细观察它的风格,你就会发现问题:

在xaml中搜索关键字StandardColorsAvailableColors,这里是StandardColors的模板:

<ListBox x:Name="PART_StandardColors"  Grid.Row="1">
        <ListBox.Style>
            <Style TargetType="{x:Type ListBox}">
            <Setter Property="Background" Value="Transparent"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="ItemsPanel">
            ....
        </ListBox.Style>
</ListBox>

你可以看到列表框没有设置itemsource,所以你可以自己添加它:

<ListBox x:Name="PART_StandardColors" ItemsSource="{TemplateBinding StandardColors}"  Grid.Row="1">

编辑AvailableColors的列表框:

 <ListBox x:Name="PART_AvailableColors" ItemsSource="{TemplateBinding AvailableColors}" Grid.Row="1">

最新更新