背景
我知道从控件的构造函数中使用FindResource方法获取资源是行不通的,因为它总是返回 null。
public class MyButton : Button
{
public MyButton()
{
Style = FindResource("myStyle") as Style;
}
}
我知道它可以通过OnApplyTemplate方法来完成。
public override void OnApplyTemplate()
{
Style = FindResource("myStyle") as Style;
base.OnApplyTemplate();
}
问题
为什么?我认为这与VisualTree的加载有关,但我希望从您的 WPF 专家那里获得更详细和准确的答案(或者只是一个正确的答案,以防我完全离开这里)。