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>