WPF - 当资源字典具有键集时如何引用资源中的样式

时间:2014-08-07 10:45:35

标签: wpf

我创建了一个需要引用外部资源字典文件的用户控件。然后,此资源文件中的样式将用于用户控件中的文本框。

外部资源字典文件如下:

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

<Style x:Key="ValidatedTextboxStyle" TargetType="{x:Type TextBox}">
    ...
</Style>

然后我将其导入用户控件,如下所示:(删除了长文件位置)

<Control.Resources>
    <ResourceDictionary x:Key="Test"  Source="..." />
    <common:StringCollapseVisibilityConverter x:Key="StringCollapseVisibilityConverter" />
</Control.Resources>

WPF设计师强迫我给它一个关键&#34;由于引用的其他资源。

如果没有具有名称的字典,您通常会将其引用为:

Style="{StaticResource ValidatedTextboxStyle}"

我如何引用名称为&#34; ValidatedTextboxStyle&#34;的样式?在外部资源文件中考虑到导入的资源字典被赋予密钥名称&#34;测试&#34;?

1 个答案:

答案 0 :(得分:1)

合并控件中的字典 ,您可以像之前的StaticResource一样使用它。

<Control.Resources>
   <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
         <ResourceDictionary Source="..." />
      </ResourceDictionary.MergedDictionaries>
      <common:StringCollapseVisibilityConverter
                              x:Key="StringCollapseVisibilityConverter" />
   </ResourceDictionary>
</Control.Resources>

此外,您可以在资源字典中省略设置x:Key,因为资源字典中的所有已定义资源都已合并到您的控制资源中。

现在,您可以像之前一样使用:

Style="{StaticResource ValidatedTextboxStyle}"