【问题标题】:How do I remove the Mouse Over Effect on WPF Ribbon Group?如何删除 WPF 功能区组上的鼠标悬停效果?
【发布时间】:2018-08-21 09:33:54
【问题描述】:

我正在 WPF 中处理此功能区控件:System.Windows.Controls.Ribbon.Ribbon

我将背景设置为橙色,并且稍微改变了样式。它看起来像这样:

当我将光标移到一个组上时,它看起来像这样:

我想移除白色鼠标悬停/悬停效果,但我不知道应该查看哪个样式或模板。这些我都试过了:

  • 功能区
  • 功能区标签
  • RibbonTabHeader
  • 功能区按钮
  • 功能区组

有可能吗?我该怎么做?

【问题讨论】:

    标签: wpf ribbon


    【解决方案1】:

    所以它在RibbonGroup的样式里面:

        <!--Ribbon Group - Style-->
        <Style TargetType="RibbonGroup">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate x:Name="ribbonGroupControlTemplate" TargetType="RibbonGroup" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
                        <Border Background="{TemplateBinding Panel.Background}" Name="GroupBorder" Margin="1,2,0,0">
                            <Grid Name="MainGrid">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*" />
                                    <RowDefinition Height="Auto" />
                                    <RowDefinition Height="Auto" MinHeight="16" />
                                </Grid.RowDefinitions>
                                <Border BorderThickness="1,1,1,1" CornerRadius="2,2,2,2" BorderBrush="{TemplateBinding RibbonControlService.MouseOverBorderBrush}" Background="{TemplateBinding RibbonControlService.MouseOverBackground}" Name="PART_HotBackground" Opacity="0" SnapsToDevicePixels="True" Grid.RowSpan="3" />
                                <Border Background="{TemplateBinding Border.BorderBrush}" Name="SeparatorBorder" Width="1" Height="75" VerticalAlignment="Center" SnapsToDevicePixels="True" Grid.Column="1" Grid.RowSpan="3" />
                                <Border Padding="3,0,3,0" Margin="2,1,2,0">
                                    <Grid>
                                        <ItemsPresenter Name="ItemsPresenter" />
                                        <ContentControl Name="PART_TemplateContentControl" Visibility="Collapsed" Focusable="False" />
                                    </Grid>
                                      ...
    

    罪魁祸首是这个边框:

    <Border BorderThickness="1,1,1,1" CornerRadius="2,2,2,2" BorderBrush="{TemplateBinding RibbonControlService.MouseOverBorderBrush}" Background="{TemplateBinding RibbonControlService.MouseOverBackground}" Name="PART_HotBackground" Opacity="0" SnapsToDevicePixels="True" Grid.RowSpan="3" />
    

    当我注释掉或删除该边框和随之而来的触发器时;它解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2013-06-15
      • 1970-01-01
      • 2013-01-17
      • 2011-04-20
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多