【问题标题】:Make text bold when mouse hovers over Context menu当鼠标悬停在上下文菜单上时使文本变为粗体
【发布时间】:2016-01-18 23:59:52
【问题描述】:

我想知道当鼠标悬停在上下文菜单中的文本上时如何更改文本?我希望文本变为粗体,但不知道如何做到这一点。任何帮助,将不胜感激 :)。这是包含图像的菜单项的资源样式,我认为我应该把它放在哪里

XAML

<Style x:Key="MenuItemIcon" TargetType="MenuItem">
        <Style.Resources>
            <Style TargetType="ContentPresenter">
                <Style.Triggers>
                    <Trigger Property="ContentSource" Value="Icon">
                        <Setter Property="ContentTemplate">
                            <Setter.Value>
                                <DataTemplate>
                                    <Image Source="{Binding}"/>
                                </DataTemplate>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>                   
            </Style>    
        </Style.Resources>
    </Style>

【问题讨论】:

    标签: wpf mouseevent contextmenu highlighting


    【解决方案1】:

    您可以尝试以下操作:

     <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}" x:Shared="False">
    <Style.Triggers>
      <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="FontWeight" Value="Bold" />
      </Trigger>
    </Style.Triggers>
    

    让我知道它是否适合你:)

    问候,

    【讨论】:

    • 我收到错误“无法识别或无法访问成员 FontWeight”:(
    • 这太令人惊讶了。我测试了它,它对我有用。你把它放在资源合并字典中了吗?
    • 我把它放在了我的 usercontrol.resources 中,我猜这有很大的不同?
    • 我认为应该在顶层完成,除非上下文菜单的范围仅适用于该用户控件。无论如何,我没想到“成员 FontWeight 无法识别或访问”。
    • 好的,所以我把它放在顶层,现在得到这个错误:资源“x:Type MenuItem}”无法解析。
    【解决方案2】:

    要回答您的另一个问题,要更改悬停背景,请使用以下命令:

    <Style TargetType="MenuItem" BasedOn="{StaticResource {x:Type MenuItem}}" x:Shared="False">
    <Style.Triggers>
      <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="BorderBrush" Value="Red" />
      </Trigger>
    </Style.Triggers>
    

    【讨论】:

    • 我有这个,完全没有变化
    • 没有什么事情发生 :(
    • 您是否正在使用任何基础设施/Devexpress 控件。他们有不同的菜单主题,这可能会造成问题......虽然我不太确定......
    • 我正在使用 syncfusion,我猜这会有所不同吗?
    • 所以刚刚创建了一个标准程序,仍然没有发生任何变化:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多