如何更改 WPF C# 中的默认按钮突出显示

GN66

所以我有这个按钮:

在此处输入图片说明

我需要删除那个蓝色矩形。我尝试添加以下事件触发器(IsMouseOver 和 IsFocused),并将背景设置为透明:

    <Style x:Key="ButtonStyle" TargetType="Button">

        <Setter Property="FocusVisualStyle" Value="{x:Null}" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Border Name="Border" Padding="0" SnapsToDevicePixels="true">
                        <ContentPresenter />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="true">
                            <Setter TargetName="Border" Property="Background" Value="Transparent"/>
                        </Trigger>
                        <Trigger Property="IsFocused" Value="True">
                            <Setter TargetName="Border" Property="Background" Value="Transparent" />
                            <Setter Property="Background" Value="Transparent" />

                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

该按钮位于此菜单内:

   <Menu HorizontalAlignment="Left" Height="40" Margin="0,80,0,0" VerticalAlignment="Top" Width="700" Background="WhiteSmoke">
        <Button x:Name="OrderBy" Content="Order By" Width="75" Margin="0,8,0,0"  Style="{DynamicResource ButtonStyle}"/>
        <GridSplitter Height="20" Width="1" Background="Black" Margin="0,8,0,0"/>
        <Button x:Name="Refresh" Content="Refresh" Width="75" Margin="0,8,0,0"/>
        <TextBox x:Name="Search" Height="23" TextWrapping="Wrap" Text="Search" Width="240"  Margin="250,8,0,0" HorizontalAlignment="Right"/>
    </Menu>

我是 WPF 的新手,我已经进行了很多搜索以试图找到答案。感谢您的帮助!

雷克希诺

您必须为 MenuItem 重写 ControlTemplate,即 TopLevelItemTemplate,并将 IsHighlighted Border 的 Background 的 Trigger 设置为透明。突出显示来自 MenuItem 而不是来自 Button。尝试将其放入菜单的资源中:

        <LinearGradientBrush x:Key="NormalBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#FFF" Offset="0.0"/>
                    <GradientStop Color="#CCC" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="HorizontalNormalBrush" StartPoint="0,0" EndPoint="1,0">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#FFF" Offset="0.0"/>
                    <GradientStop Color="#CCC" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="LightBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#FFF" Offset="0.0"/>
                    <GradientStop Color="#EEE" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="HorizontalLightBrush" StartPoint="0,0" EndPoint="1,0">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#FFF" Offset="0.0"/>
                    <GradientStop Color="#EEE" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#FFF" Offset="0.0"/>
                    <GradientStop Color="#AAA" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#BBB" Offset="0.0"/>
                    <GradientStop Color="#EEE" Offset="0.1"/>
                    <GradientStop Color="#EEE" Offset="0.9"/>
                    <GradientStop Color="#FFF" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <SolidColorBrush x:Key="DisabledForegroundBrush" Color="#888" />

        <SolidColorBrush x:Key="DisabledBackgroundBrush" Color="#EEE" />

        <SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />

        <SolidColorBrush x:Key="SelectedBackgroundBrush" Color="#DDD" />

        <!-- Border Brushes -->

        <LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#CCC" Offset="0.0"/>
                    <GradientStop Color="#444" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="HorizontalNormalBorderBrush" StartPoint="0,0" EndPoint="1,0">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#CCC" Offset="0.0"/>
                    <GradientStop Color="#444" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="DefaultedBorderBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#777" Offset="0.0"/>
                    <GradientStop Color="#000" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <LinearGradientBrush x:Key="PressedBorderBrush" StartPoint="0,0" EndPoint="0,1">
            <GradientBrush.GradientStops>
                <GradientStopCollection>
                    <GradientStop Color="#444" Offset="0.0"/>
                    <GradientStop Color="#888" Offset="1.0"/>
                </GradientStopCollection>
            </GradientBrush.GradientStops>
        </LinearGradientBrush>

        <SolidColorBrush x:Key="DisabledBorderBrush" Color="#AAA" />

        <SolidColorBrush x:Key="SolidBorderBrush" Color="#888" />

        <SolidColorBrush x:Key="LightBorderBrush" Color="#AAA" />

        <!-- Miscellaneous Brushes -->
        <SolidColorBrush x:Key="GlyphBrush" Color="#444" />

        <SolidColorBrush x:Key="LightColorBrush" Color="#DDD" />


        <Style x:Key="{x:Static MenuItem.SeparatorStyleKey}"
       TargetType="Separator">
            <Setter Property="Height" Value="1"/>
            <Setter Property="Margin" Value="0,4,0,4"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Separator">
                        <Border BorderBrush="{StaticResource SolidBorderBrush}"
                BorderThickness="1"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <!-- TopLevelHeader -->
        <ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}"
                 TargetType="MenuItem">
            <Border Name="Border" >
                <Grid>
                    <ContentPresenter 
        Margin="6,3,6,3" 
        ContentSource="Header"
        RecognizesAccessKey="True" />
                    <Popup 
        Name="Popup"
        Placement="Bottom"
        IsOpen="{TemplateBinding IsSubmenuOpen}"
        AllowsTransparency="True" 
        Focusable="False"
        PopupAnimation="Fade">
                        <Border 
          Name="SubmenuBorder"
          SnapsToDevicePixels="True"
          Background="{StaticResource WindowBackgroundBrush}"
          BorderBrush="{StaticResource SolidBorderBrush}"
          BorderThickness="1" >
                            <StackPanel  
            IsItemsHost="True" 
            KeyboardNavigation.DirectionalNavigation="Cycle" />
                        </Border>
                    </Popup>
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsSuspendingPopupAnimation" Value="true">
                    <Setter TargetName="Popup" Property="PopupAnimation" Value="None"/>
                </Trigger>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background"
              Value="{StaticResource NormalBrush}"/>
                    <Setter TargetName="Border" Property="BorderBrush"
              Value="Transparent"/>
                </Trigger>
                <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
                    <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0,0,4,4"/>
                    <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,0,0,3"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
        <!-- TopLevelItem -->

        <ControlTemplate x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}" 
  TargetType="MenuItem">
            <Border Name="Border" >
                <Grid>
                    <ContentPresenter 
        Margin="6,3,6,3" 
        ContentSource="Header"
        RecognizesAccessKey="True" />
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background" Value="Transparent"/>
                    <Setter TargetName="Border" Property="BorderBrush" Value="Transparent"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground"
              Value="{StaticResource DisabledForegroundBrush}"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>

        <!-- SubmenuItem -->

        <ControlTemplate 
  x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}" 
  TargetType="MenuItem">
            <Border Name="Border" >
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Icon"/>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
                        <ColumnDefinition Width="13"/>
                    </Grid.ColumnDefinitions>
                    <ContentPresenter 
        Name="Icon"
        Margin="6,0,6,0"
        VerticalAlignment="Center"
        ContentSource="Icon"/>
                    <Border 
        Name="Check"  
        Width="13" Height="13" 
        Visibility="Collapsed"
        Margin="6,0,6,0" 
        Background="{StaticResource NormalBrush}"
        BorderThickness="1"
        BorderBrush="{StaticResource NormalBorderBrush}">
                        <Path 
          Name="CheckMark"
          Width="7" Height="7" 
          Visibility="Hidden" 
          SnapsToDevicePixels="False" 
          Stroke="{StaticResource GlyphBrush}"
          StrokeThickness="2"
          Data="M 0 0 L 7 7 M 0 7 L 7 0" />
                    </Border>
                    <ContentPresenter 
        Name="HeaderHost"
        Grid.Column="1"
        ContentSource="Header"
        RecognizesAccessKey="True"/>
                    <TextBlock x:Name="InputGestureText"
        Grid.Column="2"
        Text="{TemplateBinding InputGestureText}"
        Margin="5,2,0,2"
        DockPanel.Dock="Right" />
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="Icon" Value="{x:Null}">
                    <Setter TargetName="Icon" Property="Visibility" Value="Hidden"/>
                </Trigger>
                <Trigger Property="IsChecked" Value="true">
                    <Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/>
                </Trigger>
                <Trigger Property="IsCheckable" Value="true">
                    <Setter TargetName="Check" Property="Visibility" Value="Visible"/>
                    <Setter TargetName="Icon" Property="Visibility" Value="Hidden"/>
                </Trigger>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background"
              Value="{StaticResource SelectedBackgroundBrush}"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>

        <!-- SubmenuHeader -->

        <ControlTemplate 
  x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}" 
  TargetType="MenuItem">
            <Border Name="Border" >
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Icon"/>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
                        <ColumnDefinition Width="13"/>
                    </Grid.ColumnDefinitions>
                    <ContentPresenter 
        Name="Icon"
        Margin="6,0,6,0"
        VerticalAlignment="Center"
        ContentSource="Icon"/>
                    <ContentPresenter 
        Name="HeaderHost"
        Grid.Column="1"
        ContentSource="Header"
        RecognizesAccessKey="True"/>
                    <TextBlock x:Name="InputGestureText"
        Grid.Column="2"
        Text="{TemplateBinding InputGestureText}"
        Margin="5,2,2,2"
        DockPanel.Dock="Right"/>
                    <Path 
        Grid.Column="3"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Data="M 0 0 L 0 7 L 4 3.5 Z" 
        Fill="{StaticResource GlyphBrush}" />
                    <Popup 
        Name="Popup"
        Placement="Right"
        HorizontalOffset="-4" 
        IsOpen="{TemplateBinding IsSubmenuOpen}"
        AllowsTransparency="True" 
        Focusable="False"
        PopupAnimation="Fade">
                        <Border 
          Name="SubmenuBorder"
          SnapsToDevicePixels="True"
          Background="{StaticResource WindowBackgroundBrush}"
          BorderBrush="{StaticResource SolidBorderBrush}"
          BorderThickness="1" >
                            <StackPanel  
            IsItemsHost="True" 
            KeyboardNavigation.DirectionalNavigation="Cycle" />
                        </Border>
                    </Popup>
                </Grid>
            </Border>
            <ControlTemplate.Triggers>
                <Trigger Property="Icon" Value="{x:Null}">
                    <Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
                </Trigger>
                <Trigger Property="IsHighlighted" Value="true">
                    <Setter TargetName="Border" Property="Background"
              Value="{StaticResource SelectedBackgroundBrush}"/>
                </Trigger>
                <Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
                    <Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="4"/>
                    <Setter TargetName="SubmenuBorder" Property="Padding" Value="0,3,0,3"/>
                </Trigger>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter Property="Foreground" Value="{StaticResource DisabledForegroundBrush}"/>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>

        <!-- MenuItem Style -->

        <Style x:Key="{x:Type MenuItem}" TargetType="MenuItem">
            <Setter Property="OverridesDefaultStyle" Value="True"/>
            <Style.Triggers>
                <Trigger Property="Role" Value="TopLevelHeader">
                    <Setter Property="Template"
              Value="{StaticResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}"/>
                    <Setter Property="Grid.IsSharedSizeScope" Value="true"/>
                </Trigger>
                <Trigger Property="Role" Value="TopLevelItem">
                    <Setter Property="Template"
              Value="{StaticResource {x:Static MenuItem.TopLevelItemTemplateKey}}"/>
                </Trigger>
                <Trigger Property="Role" Value="SubmenuHeader">
                    <Setter Property="Template"
              Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/>
                </Trigger>
                <Trigger Property="Role" Value="SubmenuItem">
                    <Setter Property="Template"
              Value="{StaticResource {x:Static MenuItem.SubmenuItemTemplateKey}}"/>
                </Trigger>
            </Style.Triggers>
        </Style> 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

更改默认按钮突出显示WPF

来自分类Dev

将鼠标悬停在XAML WPF上时,将按钮默认的突出显示颜色更改为透明颜色?

来自分类Dev

WPF C#Databind:在C#中,突出显示另一个控件时更改控件颜色

来自分类Dev

WPF C#Databind:在C#中,突出显示另一个控件时更改控件颜色

来自分类Dev

背景不会更改按钮C#WPF

来自分类Dev

C# WPF 中的持久按钮颜色更改

来自分类Dev

c#WPF如何仅更改内容?

来自分类Dev

使用C#更改WPF列表框SelectedItem文本颜色和突出显示/背景颜色

来自分类Dev

将突出显示的文本框更改为透明边框 C# WPF

来自分类Dev

WPF - 如何通过更改按钮的资源来更改按钮颜色

来自分类Dev

如何在WPF C#中以编程方式更改ContentControl中的UserControl

来自分类Dev

如何在C#代码中更改Fontawesome.wpf图标

来自分类Dev

如何在Rich文本框中更改所选文本背景颜色WPF C#

来自分类Dev

如何在C#WPF中以不连续的步骤更改椭圆的填充颜色

来自分类Dev

如何在WPF中更改按钮的内容“颜色”

来自分类Dev

如何在WPF XAML中更改按钮背景?

来自分类Dev

如何在WPF中更改按钮的视觉行为?

来自分类Dev

如何在WPF中更改画布的位置?

来自分类Dev

如何在WPF中更改视图?

来自分类Dev

如何在WPF中更改ScrollBar的样式

来自分类Dev

如何在WPF中更改画布的位置?

来自分类Dev

如何从按钮中删除突出显示样式

来自分类Dev

如何在 VSCode 的 C++ 文件中更改类 jsdoc 标记的突出显示颜色

来自分类Dev

如何:更改DataGrid IsSelected背景(C#,WPF)

来自分类Dev

如何将WPF中的默认Mainwindows窗体更改为WIndow1 c#。我正在使用Visual Studio 2012

来自分类Dev

在修改C#WPF应用程序中的binded属性之前,如何确保与UI同步基于绑定的样式更改?

来自分类Dev

使用C#在WPF中更改背景图像

来自分类Dev

在WPF C#中更改文本的某些部分的颜色

来自分类Dev

如何动态更改WPF:s按钮的背景颜色

Related 相关文章

  1. 1

    更改默认按钮突出显示WPF

  2. 2

    将鼠标悬停在XAML WPF上时,将按钮默认的突出显示颜色更改为透明颜色?

  3. 3

    WPF C#Databind:在C#中,突出显示另一个控件时更改控件颜色

  4. 4

    WPF C#Databind:在C#中,突出显示另一个控件时更改控件颜色

  5. 5

    背景不会更改按钮C#WPF

  6. 6

    C# WPF 中的持久按钮颜色更改

  7. 7

    c#WPF如何仅更改内容?

  8. 8

    使用C#更改WPF列表框SelectedItem文本颜色和突出显示/背景颜色

  9. 9

    将突出显示的文本框更改为透明边框 C# WPF

  10. 10

    WPF - 如何通过更改按钮的资源来更改按钮颜色

  11. 11

    如何在WPF C#中以编程方式更改ContentControl中的UserControl

  12. 12

    如何在C#代码中更改Fontawesome.wpf图标

  13. 13

    如何在Rich文本框中更改所选文本背景颜色WPF C#

  14. 14

    如何在C#WPF中以不连续的步骤更改椭圆的填充颜色

  15. 15

    如何在WPF中更改按钮的内容“颜色”

  16. 16

    如何在WPF XAML中更改按钮背景?

  17. 17

    如何在WPF中更改按钮的视觉行为?

  18. 18

    如何在WPF中更改画布的位置?

  19. 19

    如何在WPF中更改视图?

  20. 20

    如何在WPF中更改ScrollBar的样式

  21. 21

    如何在WPF中更改画布的位置?

  22. 22

    如何从按钮中删除突出显示样式

  23. 23

    如何在 VSCode 的 C++ 文件中更改类 jsdoc 标记的突出显示颜色

  24. 24

    如何:更改DataGrid IsSelected背景(C#,WPF)

  25. 25

    如何将WPF中的默认Mainwindows窗体更改为WIndow1 c#。我正在使用Visual Studio 2012

  26. 26

    在修改C#WPF应用程序中的binded属性之前,如何确保与UI同步基于绑定的样式更改?

  27. 27

    使用C#在WPF中更改背景图像

  28. 28

    在WPF C#中更改文本的某些部分的颜色

  29. 29

    如何动态更改WPF:s按钮的背景颜色

热门标签

归档