如果我在控件的资源部分或外部资源字典中定义了一些资源,如何使用另一个键定义相同的资源?我的意思是如何定义仅引用另一个已经存在的条目的资源条目?
更清楚地说,我希望有几个键引用一个资源,就像在编程语言中我可以为一个常量定义多个名称一样。可能吗?
我试过这样
<Window.Resources>
<SolidColorBrush x:Key="Brush1" Color="#FFDF7B04"/>
<RadialGradientBrush x:Key="Brush2" GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">
<GradientStop Color="#5060FF40" Offset="0" />
<GradientStop Color="#5060FF40" Offset="0.1" />
<GradientStop Color="#3560FF40" Offset="0.4" />
<GradientStop Color="#0860FF40" Offset="0.8" />
<GradientStop Color="#0060FF40" Offset="1" />
</RadialGradientBrush>
<Style x:Key="CustomStyle" TargetType="UserControl">
<Style.Resources>
<StaticResource x:Key="TheBrush" ResourceKey="Brush1"/>
</Style.Resources>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="UserControl">
<Border x:Name="Border" BorderBrush="{StaticResource TheBrush}">
<!-- more content with several usings of {StaticResource TheBrush} -->
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
它甚至可以像我需要的那样在设计时工作。但甚至没有编译。
UPD。为了更清楚我真正想要的东西:在上面的示例中,我需要资源 TheBrush 的原因是,如果有时我决定将我的风格中的“TheBrush”外观替换为另一个画笔(比如 Brush2),我想在只有一个地方。我无法更改“Brush1”的定义,因为它可能已经在许多其他控件中使用(实际上它可以放在外部资源字典中并由另一个人维护)。
UPD 2.很抱歉,由于我的英语很差,我自己无法找到我的问题的答案,也无法正确地提出我的问题。感谢HB,现在我看到我想要的关键词是“别名”。我正在寻找一种别名资源的方法,并且有很多类似的问题:
等等
所以我的问题只是重复的,可以删除。