如何应用自定义控件的默认模板而不使用" Themes \ Generic.xaml?"

时间:2014-07-28 06:54:44

标签: c# wpf xaml

我使用默认模板创建了自定义内容控件。 虽然该模板不在“Themes \ Generic.xaml”位置,但它应该是。相反,我将它放在一个具有不同名称的单独资源字典中。 它与App.xaml资源字典中的其他资源字典一起合并。

运行代码没有产生错误,控件可见。我在其他机器上测试了应用程序并且代码运行得很好,我想指出这些机器是开发机器。

在客户端计算机上测试应用程序(非开发)然后发现了一些奇怪的行为。自定义控件不可见;它只能在1台3台客户机上看到。

我能够通过将模板放在“Themes \ Generic.xaml”中来解决问题。

我的问题是如何在不必将模板放入“Themes \ Generic.xaml”的情况下工作?我在谷歌搜索过,但我可以找到任何明确的解释。

谢谢

1 个答案:

答案 0 :(得分:0)

对于要应用的模板,它们需要存在于Themes \ Generic.xaml中。 好消息是你可以在这里合并它们,我认为这是一种很好的做法,并使你的代码更清晰。通常我的generic.xaml只包含这个,一个X.Generic.xaml用于你的所有cust。控件。

主题/ Generic.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
...>
    <!-- Your custom controls split into separate files -->
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/YourNamespace;component/Themes/ControlA.Generic.xaml" />
        <ResourceDictionary Source="/YourNamespace;component/Themes/ControlB.Generic.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
相关问题