我已经在谷歌上找了几个小时我的问题的解决方案,但是找不到太多信息。
我正在使用WPF Toolkit v2.2.1。
我的WPF应用程序中有一个Color Picker控件,需要自定义样式。我正在编辑App.xaml中拾色器的控件模板以应用于所有颜色选择器。
一旦我选择使用模板,所有可用的颜色都会从拾色器消失。我试图从代码中分配新的可用颜色但没有成功。
颜色的集合在那里,它们似乎没有显示出来。
这是我在mainwindow.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"/>
不幸的是,控件模板太大而无法粘贴到此处。但是,通过在wpf窗口中添加CP并在设计视图中右键单击它并选择“编辑模板”,可以轻松地重现这一点。一旦应用,颜色就会消失,而不会改变任何东西。
有人知道在编辑控件模板时如何显示可用的颜色吗?
祝你好运
答案 0 :(得分:7)
是的,它的风格有些不对劲。但如果你仔细观察它的风格,你会发现问题所在:
在xaml中搜索关键字StandardColors
或AvailableColors
,这里是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">
现在可行。