我有一个Silverlight项目,我想自定义ComboBox控件的外观,所以我添加了一个ResourceDictionary.xaml文件,覆盖了ComboBox的默认样式,将这个新样式应用到ComboBox,它工作正常。
<Style TargetType="ComboBox" x:Key="CommonComboBoxStyle">
<Setter Property = "xxx" Value="XXX" />
....
</Style>
很快我意识到我还需要自定义ComboBoxItem的外观,我想在选择/删除项目时更改其背景颜色,所以我覆盖了它的默认样式:
<Style x:Key="FilterDownComboBoxItemContainerStyle" TargetType="ComboBoxItem">
.....
<Rectangle x:Name="fillColor" Fill="#FF0054A6" IsHitTestVisible="False" Opacity="0" RadiusY="0" RadiusX="0"/>
<Rectangle x:Name="fillColor2" Fill="#FF0054A6" IsHitTestVisible="False" Opacity="0" RadiusY="0" RadiusX="0"/>
</Style>
这是问题,我想把FilterDownComboBoxItemContainerStyle放在CommonComboBoxStyle中,所以我只需要将CommonComboBoxStyle应用到我想要的ComboBoxes,不需要将FilterDownComboBoxItemContainerStyle分别应用到每个ComboBoxItem,有没有办法在ComboBox中设置ComboBoxItem的样式风格?
答案 0 :(得分:1)
有没有办法在ComboBox样式中设置ComboBoxItem的样式?
是的,您可以使用ComboBox.ItemContainerStyle
:
<Style TargetType="ComboBox" x:Key="CommonComboBoxStyle">
<Setter Property="ItemContainerStyle" Value="{StaticResource FilterDownComboBoxItemContainerStyle}" />
</Style>