使用多个资源词典

时间:2013-02-22 13:00:11

标签: silverlight

我已经为我的usercontrol中的TextBox继承的控件定义了两个资源字典,如下所示:

<UserControl.Resources>
    <ResourceDictionary Source="KeyBox.xaml" x:Key="KeyBox" ></ResourceDictionary>
    <ResourceDictionary Source="kTextBox.xaml" x:Key="kTextBox" ></ResourceDictionary>
</UserControl.Resources>

我在不同目标类型的单独文件中创建了样式:     

<Style TargetType="b:kTextBox" >

现在,当我使用这些资源创建控件时,实际应用的最后一个样式实际应用,所以如果我删除第二个,则第一个工作。我在这里缺少一些东西来在同一个用户控件中使用两个资源,我无法弄清楚它是什么。任何想法都非常赞赏。

1 个答案:

答案 0 :(得分:0)

尝试添加这样的资源词典:

 <UserControl.Resources>
     <ResourceDictionary>
         <ResourceDictionary.MergedDictionaries>
             <ResourceDictionary Source="KeyBox.xaml" x:Key="KeyBox" ></ResourceDictionary>
             <ResourceDictionary Source="kTextBox.xaml" x:Key="kTextBox" ></ResourceDictionary>
          </ResourceDictionary.MergedDictionaries>
     </ResourceDictionary>
 </UserControl.Resources>

请注意,除非您有一个名为kTextBox的类,否则您的Style不起作用。

还值得一提的是,您的控件一次只应用一种样式,并且将应用添加到字典中的最后一个资源。因此,如果您在两个字典中使用相同的键定义了样式,则将应用kTextBox.xaml中的样式。