gpt4 book ai didi

WPF 菜单项边框

转载 作者:行者123 更新时间:2023-12-04 15:16:32 26 4
gpt4 key购买 nike

我在尝试实现 Menu 时遇到了问题并且无法弄清楚发生了什么。我正在尝试使用 Menu 制作单层菜单控制。这是我的菜单代码:

<Menu DockPanel.Dock="Top" Height="22" Name="menu1" VerticalAlignment="Top" Background="#FF325170">
<MenuItem Header="Featured" Style="{StaticResource menuItemStyle}" />
<MenuItem Header="Search" Style="{StaticResource menuItemStyle}" />
</Menu>

和我的风格 MenuItem s 如下:
<Style x:Key="menuItemStyle" TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Trigger Property="MenuItem.IsMouseOver" Value="true">
<Setter Property = "Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>

当我将鼠标悬停在菜单项上时,会出现 Border出现了,我一生都无法弄清楚如何删除此边框。有什么建议?

最佳答案

对于很多内置的 WPF 控件样式,您需要覆盖 ControlTemplate。

Here is the MSDN page它提供了 Menu ControlTemplate,以及有关如何使用它的说明——基本上,您正在插入 Menu 控件的所有样式的本地副本,然后覆盖默认的控件外观。

为了解决您的问题,您应该能够插入这种样式:

<Style x:Key="{x:Type Menu}" TargetType="{x:Type Menu}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Menu}">
<!--Here is where you change the border thickness to zero on the menu-->
<Border BorderThickness="0">
<StackPanel ClipToBounds="True" Orientation="Horizontal"
IsItemsHost="True"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

关于WPF 菜单项边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1515210/

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