样式化WPF/Silverlight组合框
我想知道如何更改ComboBox控件的弹出部分。我不太熟悉自定义样式和模板 我有一个定义的弹出窗口,如中所示:样式化WPF/Silverlight组合框,wpf,silverlight,xaml,combobox,styling,Wpf,Silverlight,Xaml,Combobox,Styling,我想知道如何更改ComboBox控件的弹出部分。我不太熟悉自定义样式和模板 我有一个定义的弹出窗口,如中所示: <Popup Name="Popup" Placement="Bottom" IsOpen="{TemplateBinding IsDropDownOpen}" .....> .... some content </Popup> .... 一些内容 我知道ComboBox控件有一个名为“PART_p
<Popup
Name="Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsDropDownOpen}"
.....>
.... some content
</Popup>
.... 一些内容
我知道ComboBox控件有一个名为“PART_popup”的命名弹出窗口。如何用自己的实现替换默认实现
谢谢您可以使用加载的事件并在代码隐藏中搜索该部件来替换它,这可能不起作用,因为并非所有部件元素都是必需的。通常,您会复制现有模板并更改相关部分,您可以通过
组合框.template
属性设置模板
如果您只想设置样式,而不是显著地更改任何内容,那么也可以对弹出窗口使用隐式样式
可以在MSDN上找到默认模板:
(“默认WPF主题。”链接)(各种子页面)在XamlpadX中,您可以单击样式按钮并选择组合框-显示组合框的模板-将其复制到您的项目并进行实验 您还可以在此处查看controlstyle: 和控制模板示例如下:
你能举个例子吗?这将非常有帮助。就像我说的,我不知道该怎么做。谢天谢地,第一种方法是个坏主意,因为零件不一定是强制性的。你在问题中贴了一些代码,这是从哪里来的?因为如果它来自默认模板,只需复制所有模板并将其设置为
ComboBox.template
,如果要将其应用于多个组合框,则可以使用样式.Setter
。只需编辑您想要与众不同的部分。(如果您不知道从哪里获得默认模板,我会在我的答案中添加一些链接。)