无法在窗口上应用阴影

时间:2013-07-25 18:18:19

标签: c# wpf vb.net xaml

我有以下内容:

  <Style TargetType="local:MainWindow">
        <Setter Property="Foreground" Value="{DynamicResource ForegroundColorBrush}" />
        <Setter Property="Background" Value="{DynamicResource WindowBackgroundBrush}"/>
        <Setter Property="UseLayoutRounding" Value="True" />
        <Setter Property="TextOptions.TextFormattingMode" Value="Display" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="local:MyWindow">
                    <Border x:Name="WindowBorder" Background="{StaticResource WindowBackgroundColorBrush}">
                        <Border.Effect>
                            <DropShadowEffect BlurRadius="20" Color="Black"/>
                        </Border.Effect>
                        <Grid>
                            <Border BorderThickness="1">
                                <AdornerDecorator>
                                    <Grid x:Name="LayoutRoot">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="25" />
                                            <RowDefinition Height="*" />
                                            <RowDefinition Height="15" />
                                        </Grid.RowDefinitions>
                                        <ContentPresenter Grid.Row="1" Grid.RowSpan="2" Margin="7"/>
                                        <Rectangle x:Name="HeaderBackground" Height="25" Fill="{DynamicResource WindowBackgroundColorBrush}" VerticalAlignment="Top" Grid.Row="0"/>
                                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" WindowChrome.IsHitTestVisibleInChrome="True" Grid.Row="0">
                                            <Button Command="{x:Static SystemCommands.MinimizeWindowCommand}" Style="{StaticResource WindowButtonStyle}">
                                                <Grid Width="30" Height="25">
                                                    <TextBlock Text="0" FontFamily="Marlett" FontSize="14" VerticalAlignment="Center" HorizontalAlignment="Center" Padding="3.5,0,0,3" />
                                                </Grid>
                                            </Button>
                                            <Button Command="{x:Static SystemCommands.CloseWindowCommand}" Style="{StaticResource WindowButtonStyle}">
                                                <Grid Width="30" Height="25">
                                                    <TextBlock Text="r" FontFamily="Marlett" FontSize="14" VerticalAlignment="Center" HorizontalAlignment="Center" Padding="0,0,0,1" />
                                                </Grid>
                                            </Button>
                                        </StackPanel>
                                        <TextBlock x:Name="WindowTitleTextBlock" Grid.Row="0" Text="{TemplateBinding Title}" HorizontalAlignment="Left" TextTrimming="CharacterEllipsis" VerticalAlignment="Center"  Margin="8 2 0 0"  FontSize="14"  Foreground="{TemplateBinding Foreground}"/>
                                    </Grid>
                                </AdornerDecorator>
                            </Border>
                            <Border BorderBrush="{StaticResource BlueColorBrush}" BorderThickness="1" Visibility="{Binding IsActive, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Converter={StaticResource bool2VisibilityConverter}}" />
                        </Grid>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

有谁知道为什么Border.Effect的{​​{1}}无效?

我一直试图解决这个问题,但是找不到原因。

0 个答案:

没有答案