このページで詳しく説明されているプリンター機能を実装しましたが、 System.Windows.Printingの印刷動作にバグがあったと思います。次のように、レイアウトに画像を追加しました。
<Grid x:Name="documentRoot">
<Grid.RowDefinitions>
<RowDefinition Height="100" />
<RowDefinition Height="25"/>
<RowDefinition />
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Image x:Name="logo" Source="/MyProject;component/Image/logo.jpg" Grid.Row="0" Width="265" Height="51" HorizontalAlignment="Left" Margin="0,0,0,15" VerticalAlignment="Bottom" />
<TextBlock x:Name="headerTextBlock" Grid.Row="1" HorizontalAlignment="Center" />
<TextBlock x:Name="bodyTextBlock" Grid.Row="2" TextWrapping="Wrap" />
<TextBlock x:Name="footerTextBlock" HorizontalAlignment="Center" Grid.Row="3"/>
</Grid>
このコードで何が起こるかというと、アプリケーションが開始されてから初めて複数のページを印刷する必要がある場合は常に、最初の2ページをスキップし、残りのページのみを印刷します。同じものをもう一度印刷しようとすると、期待どおりにページがきれいに印刷され、アプリケーションを再起動するまで永久に印刷されます。
追加されたRowDefinitionとは関係がないことに注意してください。これは、 Image要素を削除しようとしただけで、完全に正常に機能したためです。プリンターがおかしくなり始めるのは、UserControlにImage要素を配置したときだけです。
したがって、これは、Microsoftが何年にもわたって修正することのない、もう1つの「マイナーな」バグであると想定しています。たとえば、これは、初期の頃に苦労しなければならなかったPowershellのその他の機能しないフラグです。
そうは言っても、この問題について間違っていると言われたら嬉しいです。しかし、私がそうでない場合、誰かが回避策について何か考えを持っていますか?