【问题标题】:Overwrite the style of ComboBoxItem in ComboBox style覆盖 ComboBox 样式中 ComboBoxItem 的样式
【发布时间】:2014-10-12 01:11:10
【问题描述】:

我有一个 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上,不需要对每个ComboBoxItem分别应用FilterDownComboBoxItemContainerStyle,有没有办法在ComboBox中设置ComboBoxItem的样式风格?

【问题讨论】:

    标签: silverlight combobox styles


    【解决方案1】:

    有什么方法可以在 ComboBox 样式中设置 ComboBoxItem 的样式吗?

    是的,您可以为此使用ComboBox.ItemContainerStyle

    <Style TargetType="ComboBox" x:Key="CommonComboBoxStyle">
        <Setter Property="ItemContainerStyle" Value="{StaticResource FilterDownComboBoxItemContainerStyle}" />
    </Style>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 2010-12-20
      • 2020-09-21
      • 2020-05-27
      • 2013-10-18
      相关资源
      最近更新 更多