具有多个控件和generic.xaml的自定义控件库

时间:2011-01-18 19:54:03

标签: wpf controls

如果我在一个自定义控件lib中为两个不同的控件定义两个默认样式,我会收到错误...

是否可以在一个库中使用两个或多个带有默认generic.xaml的控件?

由于

2 个答案:

答案 0 :(得分:5)

是的,有可能。建议的方法是将每个控件的样式放在自己的资源字典中,并使用一个Generic.xaml文件来引用其他控件。

因此,例如,如果库中有两个控件:MyControl1和MyControl2。然后,您将在项目的Themes文件夹中包含以下文件:

  • generic.xaml
  • MyControl1.generic.xaml
  • MyControl2.generic.xaml

您的generic.xaml将如下所示:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/MyControlLib;component/Themes/MyControl1.generic.xaml" />
        <ResourceDictionary Source="/MyControlLib;component/Themes/MyControl2.generic.xaml" />        
    </ResourceDictionary.MergedDictionaries>       


</ResourceDictionary>

答案 1 :(得分:0)

不仅可行,而且是默认行为。

当然,这是假设两个控件位于同一名称空间中。

您没有指定所获得的错误,因此我无法提供更多细节。