OnApplyTemplate()执行顺序的问题
自定义一个silverlight类库,通过ControlTemplate定义其外观
public class CCXpsReader : System.Windows.Controls.Control
{
public myElement()
{
this.DefaultStyleKey = typeof(myElement);
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
}
}
通过重写OnApplyTemplate()后就可以通过GetTemplateChild方法获取模板里的子控件了,但是OnApplyTemplate的执行顺序有问题,当类的构造函数执行后,并不是立即执行OnApplyTemplate方法,而是延迟了一定的时间,而且如果这个自定义的控件在放到应用的项目中时如果Visibility为隐藏的话,更是不会执行OnApplyTemplate方法了。
我希望能够在执行构造函数的时候就能立即执行OnApplyTemplate方法,以便能够调用模板里的子控件和初始化一些私有变量,请问有没有解决方法呀?
网上找到过一个解决方案(搜索关键词是令人懊恼的OnApplyTemplate问题),但是我感觉这个的效率可能会比较慢(我没
有测试过效率,实验的时候出错了),我想知道有没有其他的解决方法。