2013-07-15 28 views
1

代码instatiated我有一个是由许多其它用户控件(包括第三方控制)的用户控件。当我将这个UserControl添加到我的主应用程序视图时,一切正常。但是,如果我实例在这个代码视图(用户控件),并进行以下调用,它不能正常显示:WPF:加载事件永远不会触发时,画面从后面

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事件从不会触发。是否需要在代码中执行额外的步骤?

作为一个方面说明,我为了视图发送到一段代码输出到报表这样做。

谢谢你,史蒂夫

+0

我在同样的情况是(实例代码一个用户控件,并将其渲染为位图),并遇到同样的问题..装载事件永远不会发生。你有没有解决这个问题? –

回答

0

我觉得这里你缺少订阅Loaded事件

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

对不起,我没有在这里显示它......但我这样做是在一个明显受到打击的子用户控件的构造函数中......但是当控件是主应用程序视图的一部分时,只有加载的处理函数才会被击中。 – user2584369

+0

因为你将不得不使窗口的usercontrol部分才会触发。创建一个实例并不会触发Loaded事件 – ethicallogics

相关问题