0

我已经为从我的用户控件中的 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" >

现在,当我使用这些资源创建控件时,只有最后应用的样式才会真正应用,所以如果我删除第二个,第一个就可以了。我在这里缺少一些东西来利用同一个用户控件中的两个资源,我不知道它是什么。任何想法都非常感谢。

4

1 回答 1

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 的样式。

于 2013-02-22T13:55:37.277 回答