为什么我的WPF控件的代码隐藏在设计时不运行?

时间:2017-02-13 07:22:08

标签: wpf design-time

我的WPF UserControl构造函数中有一些代码,但它似乎没有在设计时执行。

确定后面的代码应该在设计时运行,并且StackOverflow上有大量的示例代码,显示人们使用支持这种情况的设计时检查。

我甚至尝试过连接调试器,断点也不会受到影响。

1 个答案:

答案 0 :(得分:2)

我想我已经在very old 2007 article on the WPF Designer(当时称为'苹果酒')中找到了答案。这是重要的一点:

  

当您为特定控件编写代码时,后面的代码   可能会或可能不会在设计时运行

     

如果后面的代码位于托管控件的构造函数中   通过Cider设计器中的父级,它将在该控件运行时运行   加载到设计表面上。例如,如果我创建一个   UserControl名为MyUserControl并将其放在Window上   加载该窗口时将运行MyUserControl的构造函数   在苹果酒。

     

但是,如果我在Cider中设计MyUserControl,因为那种类型   正在被修改和创建,我们没有实例化   MyUserControl - 这反过来意味着没有任何代码   将运行MyUserControl。

为了验证这一点,我创建了一个新的UserControl1.xaml,并使用代码隐藏在我的控件实例中,并且代码隐藏在设计时按预期运行。