我有一個簡單的問題,但解決方案似乎很棘手。我想在循環中使用WPF控件畫布進行打印;但是對於每次迭代,我想要畫布控件。WPF - 循環打印
如果我想打印在WPF畫布控制,我可以簡單地調用
PrintDialog dialog = new PrintDialog();
dialog.PrintVisual(this.canvas, "");
它打印效果與預期到我的默認打印機。精彩。
但是,如果我想在循環中多次執行此操作並在每次迭代過程中對畫布進行更新,則只會打印循環的最終迭代。
private void methodName()
{
for (int i = 0; i < 2; i++)
{
updateTextBox(i.ToString());
PrintDialog dialog = new PrintDialog();
dialog.PrintVisual(this.canvas, "");
}
}
private void updateTextBox(string text)
{
txtTextBox.Text = text;
}
任何想法,我需要做什麼來確保我得到2個打印輸出時,先用0 txtTextBox.Text值,它的值爲1,第二次?
PrintVisual是一個異步函數嗎? MSDN沒有提到它。 – Vlad
http://msdn.microsoft.com/en-us/library/system.windows.controls.printdialog.printvisual.aspx print是要執行的最後一個命令,因此它只是'拾取'最終的迭代,因爲是最後要做的事情。這對我的應用程序來說並不合適。我曾嘗試使用DispatcherOperation類來改變優先級,但這沒有幫助。 – Dave
好吧,我無法在文檔中看到有關異步行爲的信息。你確定這不是一個錯誤? – Vlad