WPF:当从代码后面安装视图时,加载的事件永远不会激发



我有一个UserControl,它由许多其他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事件永远不会触发。我需要在代码中执行额外的步骤吗?

顺便说一句,我这样做是为了将视图发送到一段代码中,以便输出到报告中。

谢谢,Steve

我认为这里缺少订阅Loaded事件

pageView.Loaded += pageView_Loaded;
......
......
void pageView_Loaded(object sender, RoutedEventArgs e)
    {
       //Do ur loaded stuff here
    }

最新更新