代码之家  ›  专栏  ›  技术社区  ›  Nicki

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

  •  6
  • Nicki  · 技术社区  · 10 年前

    几个小时以来,我一直在谷歌上寻找解决问题的方法,但找不到太多信息。

    我正在使用WPF Toolkit v2.2.1。

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

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

    颜色的集合在那里,它们似乎没有显示出来。

    这是在我的主窗口.xaml中定义CP的方式

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

    不幸的是,控件模板太大,无法粘贴到此处。但通过将CP添加到wpf窗口并在designview中右键单击它并选择Edit Template(编辑模板),这应该很容易复制。一旦应用,颜色就会消失,而不会改变任何东西。

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

    顺致敬意,

    1 回复  |  直到 10 年前
        1
  •  7
  •   Rang    10 年前

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

    搜索关键字 StandardColors AvailableColors 以xaml表示,这里是 标准颜色 的模板:

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

    编辑列表框 可用颜色 :

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

    现在它起作用了。