WPFで、印刷機能の付いたアプリケーションを開発しています。
環境はvisualstudio2019、.NET5.0、WPFです。
https://www.paveway.info/entry/2019/06/25/wpf_print
こちらの記事を参考に印刷ボタンに対する、関数を作成しました。一部、プリント内容はxamlのCanvas要素を指定し、変更しています。
私のコードです⇂
c#
1 private void BtnPrint_Click(object sender, RoutedEventArgs e) 2 { 3 //canvas1はcanvasのNameです。 4 var canvas = new Canvas(); 5 Canvas.SetTop(canvas1, 0); 6 Canvas.SetLeft(canvas1, 0); 7 8 canvas.Children.Add(canvas1); 9 10 var page = new FixedPage();//エラー箇所 11 12 page.Children.Add(canvas); 13 14 var queue = printDialog.PrintQueue; 15 var writer = PrintQueue.CreateXpsDocumentWriter(queue); 16 writer.Write(page); 17 }
これでアプリをデバッグすると、印刷ダイアログが表示されますが、印刷ボタンを押すと
変数pageを指定している行で、「System.InvalidOperationException: '指定された要素は、既に別の要素の論理子です。まず接続を切断してください。」
というエラーが表示されます。
ちなみにwindows10の設定画面から印刷キューを確認しても、もちろんキューは表示されていません。
必要な情報かはわかりませんがcanvas要素の中には、textbvox, image, borderの要素を内部に入れています。
ネット上にもそこそこ記事はありましたが、古いものも多く自己解決に至りません。
お手数ですが、ご教授願います。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/22 01:15
2021/06/23 09:37
2021/06/23 13:51
2021/06/24 22:47
2021/06/24 23:24
2021/06/25 11:14