WPF重写ContextMenu样式 - DropShadowEffect不起作用

时间:2013-11-02 10:34:35

标签: wpf xaml styles contextmenu

我想覆盖ContextMenu的风格 这是我的风格:

<SolidColorBrush x:Key="WindowBackgroundBrush" Color="#E7E8EC" />
<SolidColorBrush x:Key="SolidBorderBrush" Color="#CCCEDB" />
<Color x:Key="DropShadowColor">#808080</Color>

<Style TargetType="{x:Type ContextMenu}">
    <Setter Property="SnapsToDevicePixels" Value="True"/>
    <Setter Property="OverridesDefaultStyle" Value="True"/>
    <Setter Property="FontFamily" Value="Segoe UI"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ContextMenu}">
                <Border Name="Border" Background="{StaticResource WindowBackgroundBrush}" BorderBrush="{StaticResource SolidBorderBrush}" BorderThickness="1" >
                    <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
                    <Border.Effect>
                        <DropShadowEffect Color="{StaticResource DropShadowColor}" Opacity="0.60" ShadowDepth="4"/>
                    </Border.Effect>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我不知道为什么,但阴影不起作用(我看不到阴影) 我该如何解决?

1 个答案:

答案 0 :(得分:5)

当然你不会看到阴影,因为它被应用于可视化树中的最顶层元素。给边框留出一些余量,你会看到阴影效果。

此致