【发布时间】:2016-11-07 19:39:12
【问题描述】:
类似于this SO 问题,我正在尝试尽可能轻松地设置 ComboBoxItems 的样式。但是,我正在根据 here 找到的 ComboBox 的默认样式制作自定义样式。
<Style x:Key="MultiComboBox" TargetType="{x:Type ComboBox}">
<Style.Resources>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Style" Value="{StaticResource MultiComboBoxItem}"/>
</Style>
</Style.Resources>
<Setter Property="SnapsToDevicePixels" Value="true" />
<!--<Setter Property="OverridesDefaultStyle" Value="true" />-->
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
...
...
</Style>
.
.
.
<ComboBox Style="{StaticResource MyComboBox}">
<ComboBoxItem x:Name="First">First</ComboBoxItem>
<ComboBoxItem x:Name="Second">Second</ComboBoxItem>
<ComboBoxItem x:Name="Third">Third</ComboBoxItem>
</ComboBox>
我在顶部添加了<Style.Resources> 位,希望这里只需要一个引用,而不是单独将其添加到嵌套元素中,甚至首先需要将其添加到元素中。另外,我注释掉了所有的 OverridesDefaultStyle Setters。
但是,然后我得到一个 XAMLparseexception,“不允许样式对象影响它所应用的对象的样式属性”。该错误本身是有道理的,但我认为既然我的目标是ComboBoxItem,它应该可以工作。有没有办法解决这个问题?
【问题讨论】: