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' 并且一切正常。
我有一个非常简单的 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' 并且一切正常。