WPF DropShadowEffect with allowsTransparency =“True”

时间:2009-11-20 08:35:18

标签: wpf styles dropshadow

我想在其上创建带有DropShadowEffect的非矩形窗口。我发现了this文章如何做到这一点。但是,运行此代码时未显示DropShadowEffect。在屏幕截图中,您可以看到DropShadowEffect存在,但它对我不起作用。

如何将DropShadowEffectAllowsTransparency设置为True?

1 个答案:

答案 0 :(得分:7)

我刚刚在Kaxaml中尝试了以下代码,并得到了一个带阴影的圆角框。

Rounded box with drop shadow

我建议您尝试使用Kaxaml,只是为了将您的实验与您可能拥有的其他代码分开。如果此确切代码显示投影,则问题必须与您的系统有关。

<Window
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowStartupLocation="CenterScreen"
  WindowStyle="None"
  AllowsTransparency="True"
  Background="Transparent"
  >

<Border CornerRadius="10"
        BorderBrush="Gray"
        BorderThickness="3"
        Background="AliceBlue"
        Margin="24"
        Padding="4"
        Width="100"
        Height="100"
        >
  <Border.Effect>
    <DropShadowEffect Color="Gray"
                      Opacity=".50"
                      ShadowDepth="16" />
  </Border.Effect>

  <Grid Background="AliceBlue">
      <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Hello world.</TextBlock>
  </Grid>
  </Border>
</Window>