【问题标题】:Combobox Mouseover组合框鼠标悬停
【发布时间】:2012-07-21 13:25:37
【问题描述】:

当我用鼠标移动时,我想更改组合框的背景颜色(mouseover)。

我已经阅读了很多关于 stackoverflow 的帖子,并尝试过这样的代码:

<ComboBox.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red"/>
</ComboBox.Resources>

结果就是这样:

但这不是我想要的。我想改变这个背景:

我该怎么做?

【问题讨论】:

    标签: wpf combobox background highlighting


    【解决方案1】:

    简单的解决方案: 只需将画笔添加到资源并从 ComboBox 的 Background 属性(通过 StaticResource 绑定)引用它:

    <Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <SolidColorBrush x:Key="BackgroundColorKey" Color="Red"/>
        <Style TargetType="{x:Type ComboBox}">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="{StaticResource BackgroundColorKey}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid>
        <ComboBox  Height="25"/>
    </Grid>
    

    问题: 选择项目后,背景颜色将重置为默认颜色。解决此问题的唯一解决方案是覆盖组合框的默认模板。

    修复: 修改默认的 ComboBox 模板。 ComboBox 默认模板存在于 msdn 上。这是链接 - http://msdn.microsoft.com/en-us/library/ms752094(v=vs.100).aspx。请参阅“ComboBox ControlTemplate 示例”部分。

    相关链接:

    MouseOver highlighting style returning to default after a second (Caused by Aero?)

    http://social.msdn.microsoft.com/Forums/en/wpf/thread/a18891e9-8879-4819-9679-247341782f60

    【讨论】:

    • 好的,我们改变背景,但我希望我们通过 mouseover 改变背景
    • 抱歉,忘记了鼠标悬停行为。然后您需要为 IsMouseOver 属性添加带有触发器的样式。请参阅我的更新答案。
    • 是的,我明白了。选择项目后,背景颜色将重置为默认颜色。解决此问题的唯一解决方案是覆盖组合框的默认模板。看到这个 - stackoverflow.com/questions/250622/….
    • 好的,谢谢,有没有代表原始状态下的组合框的模板?
    • 您可以在 msdn 上找到 ComboBox 默认模板。这是链接 - msdn.microsoft.com/en-us/library/ms752094(v=vs.100).aspx。请参阅“ComboBox ControlTemplate 示例”部分。
    猜你喜欢
    • 2021-10-08
    • 1970-01-01
    • 2011-08-04
    • 2018-09-03
    • 2011-03-21
    • 1970-01-01
    • 2015-04-22
    • 2011-05-26
    • 2017-10-14
    相关资源
    最近更新 更多