Chr*_*isc 6 wpf styles menu wpf-controls menuitem
我试图实现一个问题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>
Run Code Online (Sandbox Code Playgroud)
我的风格MenuItem如下:
<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>
Run Code Online (Sandbox Code Playgroud)
当我鼠标悬停菜单项时,会出现一个Border,我无法弄清楚如何删除此边框的生活.有什么建议?
对于许多内置的WPF控件样式,您需要覆盖ControlTemplate.
这是提供Menu ControlTemplate 的MSDN页面,其中包含如何使用它的说明 - 基本上您要为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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13589 次 |
| 最近记录: |