目前,我正在设计WPF控件。这就是我的自定义<Button>
看起来徘徊的方式。
这就是<ComboBox>
当鼠标悬停在它上面时的样子。
简单地说,我希望能够在整个ComboBox悬停时更改当前所选ComboBoxItem
的前景色。在这个例子中,我希望在<Button>
控件上有类似的黄色。
问题是,<ComboBox>
对ComboBox项和切换按钮有不同的ControlTemplates。我不知道如何在这两者之间进行互动。
<ComboBox>
的模板非常大,所以我不会在这里发布。此外,如果不需要解释问题,则无需发布完整答案。
答案 0 :(得分:0)
好的,我找到了解决方案。您需要编辑默认的ComboBox模板。
在Visual Studio 2013中,您可以通过在ComboBox上单击鼠标右键来获取Designer中的默认模板 - &gt;修改模板 - &gt;编辑副本......
在<ControlTemplate x:Key="ComboBoxTemplate" TargetType="{x:Type ComboBox}">
中,您必须添加以下触发器:
<ControlTemplate.Triggers>
...
<Trigger Property="IsMouseOver" TargetName="toggleButton" Value="true">
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="Yellow" />
</Trigger>
...
</ControlTemplate.Triggers>
此外,将样式应用于ComboBoxItem:
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="Foreground" Value="Black"/>
</Style>
现在,它就像一个魅力。