wpf 在子菜单上投影
wpf drop shadow on submenu
这是一个示例 xaml -
如何使上下文菜单的子菜单看起来与主父上下文菜单(包括投影)相同?
谢谢。
<Window x:Class="dummy.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:dummy"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Click for ContextMenu" Width="166" HorizontalAlignment="Center" VerticalAlignment="Center" Height="100">
<Button.ContextMenu>
<ContextMenu x:Name="Test" HasDropShadow="True">
<MenuItem Header="File"/>
<MenuItem Header="View"/>
<MenuItem Header="Recent Files">
<MenuItem Header="file1.txt"/>
<MenuItem Header="file2.txt"/>
</MenuItem>
<MenuItem Header="Edit"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>
我在 VS 2015 上工作,Windows 7,两者都有影子:
这实际上是 Windows 10.
上的默认行为(或外观)
如果您添加对 PresentationFramework.Aero.dll
的引用(Visual Studio 中的项目->添加引用->程序集->框架),您可以将 Aero Windows 7 样式应用到 ContextMenu
像这样:
<Button Content="Click for ContextMenu" Width="166" HorizontalAlignment="Center" VerticalAlignment="Center" Height="100">
<Button.ContextMenu>
<ContextMenu x:Name="Test" HasDropShadow="True">
<ContextMenu.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ContextMenu.Resources>
<MenuItem Header="File"/>
<MenuItem Header="View"/>
<MenuItem Header="Recent Files">
<MenuItem Header="file1.txt"/>
<MenuItem Header="file2.txt"/>
</MenuItem>
<MenuItem Header="Edit"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
这是一个示例 xaml -
如何使上下文菜单的子菜单看起来与主父上下文菜单(包括投影)相同?
谢谢。
<Window x:Class="dummy.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:dummy"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Content="Click for ContextMenu" Width="166" HorizontalAlignment="Center" VerticalAlignment="Center" Height="100">
<Button.ContextMenu>
<ContextMenu x:Name="Test" HasDropShadow="True">
<MenuItem Header="File"/>
<MenuItem Header="View"/>
<MenuItem Header="Recent Files">
<MenuItem Header="file1.txt"/>
<MenuItem Header="file2.txt"/>
</MenuItem>
<MenuItem Header="Edit"/>
</ContextMenu>
</Button.ContextMenu>
</Button>
</Grid>
我在 VS 2015 上工作,Windows 7,两者都有影子:
这实际上是 Windows 10.
上的默认行为(或外观)如果您添加对 PresentationFramework.Aero.dll
的引用(Visual Studio 中的项目->添加引用->程序集->框架),您可以将 Aero Windows 7 样式应用到 ContextMenu
像这样:
<Button Content="Click for ContextMenu" Width="166" HorizontalAlignment="Center" VerticalAlignment="Center" Height="100">
<Button.ContextMenu>
<ContextMenu x:Name="Test" HasDropShadow="True">
<ContextMenu.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</ContextMenu.Resources>
<MenuItem Header="File"/>
<MenuItem Header="View"/>
<MenuItem Header="Recent Files">
<MenuItem Header="file1.txt"/>
<MenuItem Header="file2.txt"/>
</MenuItem>
<MenuItem Header="Edit"/>
</ContextMenu>
</Button.ContextMenu>
</Button>