コントロールのリソースセクションまたは外部リソースディクショナリにいくつかのリソースが定義されている場合、同じリソースを別のキーでどのように定義できますか?つまり、既存の別のエントリを参照するだけのリソースエントリを定義するにはどうすればいいですか?別のキーで同じリソースを定義する方法は?
もっと明確にするには、プログラミング言語のように1つのリソースを参照する複数のキーが必要です。定数の名前をいくつか定義できます。 可能ですか?
私はそのよう
<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と言う)に置き換えることにしたとき、唯一の場所にあります。 Withalは、他の多くのコントロールですでに使用されている可能性があるため(Brush1の定義を変更することはできません(実際には外部リソース辞書に配置して他の人が管理することができます)。
UPD 2.私は貧しい私の英語のために、私は自分自身の質問に答えを見つけることができませんでした。 H.Bのおかげです。今私が欲しいもののキーワードは "エイリアス"であることがわかります。私は、エイリアシングリソースの方法を探しています、と多くの類似の質問があります:
Alias or Reference in ResourceDictionary
Redefine/alias a resource in WPF?
など
は、だから私の質問はただ重複しています削除される可能性があります。
単一のリソースを複数回使用したいのですが、複数のインスタンスが同時に使用できるリソースではないはずです。 – Jai
@Jai:いいえ、私はx:Shared属性について知っています。そうではありません。 – Sergey