1

他の多くの UserControls (サードパーティ コントロールを含む) で構成される UserControl があります。この UserControl をメイン アプリケーション ビューに追加すると、すべて正常に動作します。ただし、このビュー (UserControl) をコードでインスタンス化し、次の呼び出しを行うと、正しくレンダリングされません。

var pageView = new TemplatePageView() { DataContext = new PageViewModel() };
pageView.Measure(new Size(816, 1056));
pageView.Arrange(new Rect(new Size(816, 1056)));
pageView.UpdateLayout();

このユースケースでは、さまざまな部分が正しく表示されません。過去のレンダリングでサード パーティのグラフ コントロールに問題がありましたが、通常は Invalidate を呼び出すと問題が解決します。そこで、Loaded イベントにフックして Invalidate を呼び出してみました。この呼び出しは、ビューがメイン アプリケーション ビューに配置されると実行されますが、このビューをコードでインスタンス化すると、Loaded イベントは発生しません。コードで実行する必要がある追加の手順はありますか?

補足として、ビューをコードに送信してレポートに出力するためにこれを行っています。

ありがとう、スティーブ

4

1 に答える 1

0

ここで、Loaded イベントを購読していないと思います

pageView.Loaded += pageView_Loaded;
......
......
void pageView_Loaded(object sender, RoutedEventArgs e)
    {
       //Do ur loaded stuff here
    }
于 2013-07-15T17:16:02.107 に答える