wpf子菜单上的阴影

时间:2017-04-12 08:14:22

标签: .net wpf contextmenu

这是一个示例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>

2 个答案:

答案 0 :(得分:0)

在VS 2015,Windows 7上为我工作,都有阴影:

enter image description here

答案 1 :(得分:0)

这实际上是Windows 10上的默认行为(或外观)。

enter image description here

如果您添加对PresentationFramework.Aero.dll的引用(Project-&gt; Add Reference-&gt; Assemblies-&gt; Framework in 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>