破線は、プリンタの解像度に応じてダッシュの数が異なります。なぜdpiは独立していないのですか?どうすれば修正できますか?WPFで破線の印刷が間違っていますか?
var line = new Line();
line.Stroke = Brushes.Black;
line.StrokeThickness = 1;
line.X1 = line.Y1 = 100;
line.X2 = line.Y2 = 200;
line.StrokeDashArray = new DoubleCollection(new[] { 8.0 });
var dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
{
Size pageSize = new Size(
dialog.PrintableAreaWidth, dialog.PrintableAreaHeight);
line.Measure(pageSize);
line.Arrange(new Rect(0, 0, pageSize.Width, pageSize.Height));
dialog.PrintVisual(line, "description");
}
私はPrintVisualを使用しましたが、あなたは破線でのFixedDocumentを作成し、のPrintDocumentを使用することができます。結果は同じになります。
私は興味があります:) **オプション1について** FixedDocumentにベクターグラフィックスを保存してからXPSファイルとして保存するため、このアドバイスは使用できません。重要なファイルサイズは小さくなり、印刷品質はどのページサイズでも同じになります。 **オプション2について** この方法は私に合っていません。 – CrazyCoder
オプション1の場合、ビットマップを固定文書に挿入できるはずです。 なぜ、WPFアプリケーションが最初にDPI応答性であるのかがすぐに分からない場合、なぜオプション2があなたに合わないのか不思議です。彼らは、人々が使用する画面サイズ/解像度の膨大な範囲のために反応します。理論的には、どのWPFアプリケーションも、どんなディスプレイでもきれいに表示されているはずです。 – JLangford