如何在WPF中设置组合框及其项的样式?
我有一个组合框,我想与一些自定义样式样式。我成功地提供了所需的样式。在样式中,我有以下元素:如何在WPF中设置组合框及其项的样式?,wpf,combobox,itemtemplate,Wpf,Combobox,Itemtemplate,我有一个组合框,我想与一些自定义样式样式。我成功地提供了所需的样式。在样式中,我有以下元素: 切换按钮的模板 保存组合框项目的弹出窗口 我提到的几乎所有链接都使用相同的方法。但是使用这种方法,我无法为组合框中的项目提供模板。由于某些原因,我正在定义的项模板没有用于呈现项。有人能帮我吗? 我正在粘贴一个代码示例,以明确我的问题陈述(代码中可能有错误,我只希望有一个想法继续) 如果您试图为ComboBoxItem控件提供不同的ControlTemplate,则需要将ComboBox上的ItemC
- 切换按钮的模板
- 保存组合框项目的弹出窗口
如果您试图为ComboBoxItem控件提供不同的ControlTemplate,则需要将ComboBox上的ItemContainerStyle属性设置为类似于已对父控件执行的样式,但对于ComboBoxItem。ItemTemplate定义一个DataTemplate,应用于每个项目的数据,然后将其注入到ComboBoxItem ControlTemplate中
<ComboBox Style="{StaticResource MyStyle}">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Border>
<ContentPresenter/> <!--ItemTemplate is injected here-->
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=SomePropertyOnMyDataObject}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
可能是因为您没有提供combobox中引用的样式键或其他什么?嗯,combobox样式工作正常,但弹出窗口中的项目没有正确模板化。所以,我认为这个键不会有任何问题。不,我想为ComboBox本身提供一个完全不同的外观,同时为它的项提供DataTemplate。我可以试试你建议的解决方案,看看它是否能解决我的问题。无论如何,谢谢你的快速回复。
<ComboBox Style="{StaticResource MyStyle}">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Border>
<ContentPresenter/> <!--ItemTemplate is injected here-->
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=SomePropertyOnMyDataObject}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>