5

Styles の BasedOn プロパティを使用するのと同様に、既に 2 番目の名前を持っているリソースを割り当てたいと考えています。具体的には、ForegroundColor という要素のグループに使用するブラシがあり、MouseOverBackgroundBrush を呼び出すコントロール テンプレート (ComboBox) で使用したいと考えています。私はこのようなことをしたいと思います:

<ResourceCopy x:key="MouseOverBackgroundBrush" Value="{StaticResource ForegroundColor}" />

これを行う方法はありますか、または Xaml でこれを行うためのより良い方法はありますか?

4

2 に答える 2

3

これは、XAML であまり適切にサポートされていない機能です。自分自身を繰り返す必要があると思います(ブラシを変更する必要があるときはいつでも両方の場所を変更します)、少しのコードビハインドを気にしない場合は、次のように複製を実現できます。

Resources["MouseOverBackgroundBrush"] = Resources["ForegroundColor"];
于 2008-11-03T21:11:30.640 に答える
1

あなたが求めているように、xamlでリソースをコピーする方法についてはわかりません(それを行うことさえできますか?)...しかし、ここにあなたがやろうとしていることを達成するための1つの方法があります:

<Color x:Key="firstColor">#FFD97A7A</Color>
<Color x:Key="secondColor">#FFF4BFBF</Color>
<LinearGradientBrush x:Key="firstGradientBrush" EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="{DynamicResource firstColor}" Offset="0"/>
    <GradientStop Color="{DynamicResource secondColor}" Offset="1"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="secondGradientBrush" EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="{DynamicResource firstColor}" Offset="0"/>
    <GradientStop Color="{DynamicResource secondColor}" Offset="1"/>
</LinearGradientBrush>

基本的に、いくつかの一般的な色に基づいて 2 つの異なるブラシを作成します。

于 2008-11-03T21:17:36.777 に答える