我在C#中创建了一个自定义控件,其模板在Themes / Generic.xaml中定义。控件(以及Themes / Generic.xaml)在输出到DLL的项目中定义。我不确定这是否重要,但控件是在子文件夹中。
当我从主可执行文件引用控件时,控件的C#中的OnApplyTemplate()
从未被调用,并且控件显示时未应用样式信息。
这只发生在发布版本中;调试版本工作正常。
如果我在托管控件的控件(例如Window.Resources)的资源中重新定义模板,则控件正常工作。似乎Visual Studio没有将Themes / Generic.xaml链接到控件。
答案 0 :(得分:0)
事实证明,我在发布输出文件夹中有一个空的“en-US”文件夹,在本地化实验中遗留下来。显然,WPF / .NET引擎试图从“en-US”文件夹加载控件模板,当它失败时,没有恢复到程序集中定义的模板。
解决方案很简单 - 删除文件夹。