Если у меня есть определенный ресурс, определенный в разделе ресурсов элемента управления или во внешнем словаре ресурсов, как я могу определить тот же ресурс с другим ключом? Я имею в виду, как я могу определить запись ресурса, которая просто ссылается на другую уже существующую запись?Как определить тот же ресурс с помощью другого ключа?
Чтобы быть более ясным, я хочу иметь несколько ключей, ссылающихся на один ресурс, как на языке программирования. Я могу определить несколько имен для одной константы. Возможно ли это?
Я пытался таким образом
<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. Прошу прощения за то, что из-за моего бедного английского языка я не смог найти ответ на свой вопрос, а сам niether правильно поставил вопрос. Благодаря H.B. теперь я вижу, что ключевым словом того, что я хочу, является «псевдоним». Я ищу способ наложения спектров ресурсов, и есть много подобных вопросов:
Alias or Reference in ResourceDictionary
Redefine/alias a resource in WPF?
т.д.
Так что мой вопрос просто дубликат и может быть удалена.
Вы хотите использовать один ресурс несколько раз, но ресурс не должен быть тем, что может использоваться несколькими экземплярами одновременно? – Jai
@Jai: Нет. Я знаю про x: Общий атрибут. Это не так. – Sergey