gpt4 book ai didi

c# - 悬停 ComboBox 时更改 ComboBoxItem 的前景色

转载 作者:太空宇宙 更新时间:2023-11-03 15:46:20 25 4
gpt4 key购买 nike

目前,我正在设计 WPF 控件的样式。我的习惯是这样<Button>看起来悬停着。

button

这就是<ComboBox>鼠标悬停时的外观。

combobox

简单地说,我希望能够改变当前选择的前景色ComboBoxItem当整个 ComboBox 悬停时。在这个例子中,我想要像 <Button> 上类似的黄色。控制。

问题是,<ComboBox> ComboBox 项目和切换按钮有不同的 ControlTemplates。我不知道如何在这两者之间进行交互。

<ComboBox> 的模板很大,所以我不打算在这里发布它。此外,如果不需要解释问题,则不必发布完整答案。

最佳答案

好的,我找到了解决方案。您需要编辑默认的 ComboBox 模板。

在 Visual Studio 2013 中,您可以通过在 ComboBox 上单击鼠标右键 -> 编辑模板 -> 编辑副本来在设计器中获取默认模板...

<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>

现在,它就像一个魅力。

关于c# - 悬停 ComboBox 时更改 ComboBoxItem 的前景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27952588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com