2016-07-06 7 views
0

.NET 4.5のリホスティングされたワークフローデザイナから素敵なワークフローレンダリングを印刷したいと思います。 WPFコントロールを印刷する標準的なテクニックは機能しません。ワークフローデザイナー自体の周囲を見ることができますが、ワークフローのレンダリングは空白のままです。再ホストされたデザイナからの.NET WF4ワークフローの印刷

次の例では、別のワークフローデザイナからワークフロー定義を取得しますが、XAML文字列からも印刷できる必要があります(表示されたワークフローデザイナーのみに依存するようには機能しません。 1)。あなたは、デザイナーが実際に活動をレンダリング行う必要があり

public void Print() 
{ 
    var printDlg = new PrintDialog(); 

    if (printDlg.ShowDialog() != true) return; 

    _workflowDesigner.Flush(); 

    var wd = new WorkflowDesigner(); 

    DynamicActivity rootActivity; 

    using (var sr = new StringReader(_workflowDesigner.Text)) 
    { 
     rootActivity = (DynamicActivity)ActivityXamlServices.Load(sr); 
    } 

    // wrap the activity in an ActivityBuilder because the designer expects it this way 
    var ab = new ActivityBuilder 
    { 
     Implementation = rootActivity.Implementation?.Invoke(), 
     Name = rootActivity.Name 
    }; 

    wd.Load(ab); 

    var grid = new Grid(); 
    grid.Children.Add(wd.View); 

    printDlg.PrintVisual(grid, "My Workflow"); 
} 

答えて

0

は、私は、次のコードを試してみました。騒音と騒音の詳細については、 this MSDN blogを参照してください。ブログエントリは画像として保存することですが、同じ概念が適用されます。まずレンダリングしてから印刷してください。

+0

ありがとうございます。私はタイマーに頼る代わりに別の方法があることを望んだが、私はそのルートを下りなければならないようだ。 –

関連する問題