我正在寻找一种方法,基本上在ResourceDictionary
多个键中给出一个项目。有办法做到这一点吗?
<DataTemplate x:Key="myTemplate" ... />
<AliasedResource x:Key="myTemplateViaAlias" Target="myTemplate" OR_Target={StaticResource myTemplate} />
当我调用TryFindResource("myTemplateViaAlias")
时,我想把myTemplate取出来。我想我可以自己创建一个AliasedResource
类,并在代码中解引用它,当我把它从字典中取出时,但我宁愿不这样做,如果有一个内置的方法。
你可以通过动态资源输送资源(注意,蹩脚的UI设计师不会喜欢它)
<Color x:Key="color">Red</Color>
<DynamicResource x:Key="mycolor" ResourceKey="color"/>
<Rectangle Width="100" Height="100">
<Rectangle.Fill>
<SolidColorBrush Color="{StaticResource color}"/>
</Rectangle.Fill>
</Rectangle>
<Rectangle Width="100" Height="100">
<Rectangle.Fill>
<SolidColorBrush Color="{StaticResource mycolor}"/>
</Rectangle.Fill>
</Rectangle>
我知道没有办法做到这一点。
然而,如果你的目标是多个控件的多个模板,你可能想错了。
你可以有多个资源(数据模板和动态资源)具有相同的全局命名键,或用于样式的默认键(控件类类型),然后在每个控件/区域/选项卡/窗口中加载不同的资源字典文件,