Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 使用多个资源字典_Silverlight - Fatal编程技术网

Silverlight 使用多个资源字典

Silverlight 使用多个资源字典,silverlight,Silverlight,我在usercontrol中为继承自TextBox的控件定义了两个资源字典,如下所示: <UserControl.Resources> <ResourceDictionary Source="KeyBox.xaml" x:Key="KeyBox" ></ResourceDictionary> <ResourceDictionary Source="kTextBox.xaml" x:Key="kTextBox" ></Resou

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

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

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



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

尝试添加以下资源字典:

 <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的类,否则您的样式将无法工作


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

我在执行此操作时出现此错误>在类型“ResourceDictionaryok”中找不到可附加属性“MergeAddictionaries”,因此,TriggerPin上面建议的操作只需稍加修改即可。引用需要在App.xaml中定义,而不是在usercontrol中定义。我应该补充一点,上面提到的两种样式是为单独的类定义的。只是为了将来在上面的代码中参考,需要替换为
 <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>