WPF:打印时 UIElement 消失了

WPF: UIElement gone when printed

我有一个非常简单的 WPF XAML代码:

<Grid Name="MainGrid" Margin = "20 0 20 0">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="auto"/>
    </Grid.RowDefinitions>

    <ScrollViewer>
        <StackPanel Name="RowsCont" Orientation="Vertical"/>
    </ScrollViewer>

    <Border Grid.Row="1" Background="#E9E9E9">
        <Border.Effect>
            <DropShadowEffect BlurRadius="10" ShadowDepth="1" Direction="90" Opacity=".5"/>
        </Border.Effect>
        <StackPanel Grid.Column="0" Orientation="Vertical" HorizontalAlignment="Left" Margin="5">
            <TextBlock Text="ORDERNUM:" FontSize="12" Foreground="Black" FontFamily="Bahnschrift" Margin="8 2 0 0"/>
            <TextBlock Name="OrderNumBlk" Text="Nazy-001" FontSize="20" Foreground="Black" FontFamily="Consolas" Margin="8 0 0 0" FontWeight="ExtraBold"/>
        </StackPanel>
    </Border>
</Grid>

当我打开 window 时,所有内容都会显示出来。 'MainGrid' 元素被传递给 PrintDialog 的 PrintVisual() 方法。 这是后端:

PrintDialog printDlg = new System.Windows.Controls.PrintDialog();
printDlg.PrintVisual(MainGrid, "WPF Print");

实际打印时出现问题。 'Border' 放在 Grid.Row 1 中,只是简单地消失了。

我不知道这怎么会发生。请帮我算一下。

提前致谢。

不明白为什么会这样,但是,我以某种方式禁用了 'Shadow Effect' 并且一切正常。