我创建了一个需要引用外部资源字典文件的用户控件。然后将此资源文件中的样式用于用户控件中的文本框。
外部资源字典文件如下:
<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设计器强迫我给它一个"键"。
如果字典没有名称,您通常会这样引用它:
Style="{StaticResource ValidatedTextboxStyle}"
我如何在外部资源文件中引用名称为"ValidatedTextboxStyle"的样式,考虑到导入的资源字典的关键名称为"Test"?
将字典合并到控件中 ,您可以像以前一样通过StaticResource使用它。
<Control.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="..." />
</ResourceDictionary.MergedDictionaries>
<common:StringCollapseVisibilityConverter
x:Key="StringCollapseVisibilityConverter" />
</ResourceDictionary>
</Control.Resources>
同时,你可以忽略在资源字典上设置x:Key
,因为资源字典中所有定义的资源都被合并到你的控制资源中。
现在,你可以像前面那样使用:
Style="{StaticResource ValidatedTextboxStyle}"