我正在寻找一种基本上在ResourceDictionary
多个键中提供项目的方法。有没有办法做到这一点?
<DataTemplate x:Key="myTemplate" ... />
<AliasedResource x:Key="myTemplateViaAlias" Target="myTemplate" OR_Target={StaticResource myTemplate} />
当我致电TryFindResource("myTemplateViaAlias")
时,我想把myTemplate拿出来。我想我可以自己创建一个AliasedResource
类,并在我从字典中取出它时在代码中取消引用它,但如果有内置方式,我宁愿不这样做。
答案 0 :(得分:3)
您可以通过动态资源管道资源(请注意,糟糕的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>
答案 1 :(得分:0)
我无法做到这一点。
但是,如果您的目标是多个控件的多个模板, 你可能会走错路。
您可以拥有多个具有相同全局命名密钥的资源(数据模板和动态资源), 或样式的默认键(控件类类型), 然后将不同的资源字典文件加载到每个控件/区域/选项卡/窗口, 在运行期间。