我想弄清楚如何更改 ComboBox 控件的弹出部分。我对自定义样式和模板不是很熟悉。
我有一个定义的弹出窗口:
<Popup
Name="Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsDropDownOpen}"
.....>
.... some content
</Popup>
我知道 ComboBox 控件有一个名为“PART_Popup”的命名弹出窗口。如何用我自己的替换默认实现?
谢谢
你可以使用加载的事件并在后面的代码中搜索该部分来替换它,这可能不起作用,因为并非所有 PART 元素都是强制性的。通常你会复制现有的模板并更改相关部分,你可以通过ComboBox.Template
属性设置模板。
如果你只想设置样式,而不是显着更改任何内容,你也可以为弹出窗口使用隐式样式。
默认模板可以在 MSDN 上找到:
WPF(“默认 WPF 主题。”链接)
Silverlight(各种子页面)
你能提供一个例子吗?这将非常有帮助。就像我说的,我不确定如何使这项工作发挥作用。谢谢
嗯,第一种方法是个坏主意,因为零件不一定是强制性的。您在问题中发布了一些代码,它来自哪里?因为如果它来自默认模板,只需复制所有模板并将其设置为
ComboBox.Template
,Style.Setter
如果您想将其应用于多个组合框,则可能在 a 中。只需编辑您想要与众不同的部分。(如果您不知道从哪里获取默认模板,我在我的答案中添加了一些链接。)