1

我在 C# 中创建了一个自定义控件,其模板在 Themes/Generic.xaml 中定义。控件(连同 Themes/Generic.xaml)在输出到 DLL 的项目中定义。我不确定这是否重要,但控件位于子文件夹中。

当我从主可执行文件中引用该控件时,OnApplyTemplate()该控件的 C# 从未被调用,并且该控件显示为未应用任何样式信息。

这只发生在发布版本中;调试构建工作正常。

如果我在托管控件的控件(例如 Window.Resources)的资源中重新定义模板,则控件可以正常工作。似乎 Visual Studio 没有将 Themes/Generic.xaml 链接到控件。

4

1 回答 1

0

事实证明,我在发布输出文件夹中有一个空的“en-US”文件夹,这是本地化实验遗留下来的。显然 WPF/.NET 引擎试图从“en-US”文件夹加载控件模板,当它失败时,并没有恢复到程序集中定义的模板。

解决方案很简单 - 删除文件夹。

于 2014-03-02T18:37:45.250 回答