別のLinearGradientBrushでLinearGradientBrushを使用しますか?
-
02-10-2019 - |
質問
別のLinearGradientBrushの定義で1つのLinearGradientBrushを使用しようとしています。しかし、私はこれがうまくいくという天気さえ知らないので、それがうまくいくなら、私はその方法を知る必要があります。
例えば:
<LinearGradientBrush x:Key="ComboBoxFocusBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFFDEEB3" Offset="0"/>
<GradientStop Color="#FFFBF2CD" Offset="1"/>
<GradientStop Color="#FFFCE48A" Offset="0.5"/>
<GradientStop Color="#FFFBE388" Offset="0.75"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="FilterPopupTitleBrush" EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#B45988" Offset="0.75"/>
//Code here to use ComboBoxFocusBackgroundBrush
<GradientStop Color="#990088" Offset="0.75"/>
</LinearGradientBrush>
あなたの答えを期待してあなたに感謝します
編集:例でもう少し明確にするために、「filterpupuptitlebrush」で「combobxfocusbackgroundbrush」を「テンプレート」として使用したいのです。u003CGradientStop...> " - タグ
解決
このような複数のブラシ間でグラデーションストップのリストを共有できます。
<GradientStopCollection x:Key="MyGradient">
<GradientStop Color="#FFFDEEB3" Offset="0"/>
<GradientStop Color="#FFFBF2CD" Offset="1"/>
<GradientStop Color="#FFFCE48A" Offset="0.5"/>
<GradientStop Color="#FFFBE388" Offset="0.75"/>
</LinearGradientBrush>
<LinearGradientBrush x:Key="ComboBoxFocusBackgroundBrush" EndPoint="0.5,1" StartPoint="0.5,0"
GradientStops="StaticResource MyGradient}" />
<LinearGradientBrush x:Key="FilterPopupTitleBrush" EndPoint="0.5,1" StartPoint="0.5,0"
GradientStops="{StaticResource MyGradient}" />
これで変化することができます EndPoint
, StartPoint
他のプロパティは、同じ基本勾配の異なるバリエーションを作成します。
同じセットを提供することもできます RadialGradientBrush
.
他のヒント
これを行う別の方法を共有すると、別のコレクションを作成する必要はありません。既存のブラシを次のように再利用することもできます。
<LinearGradientBrush x:Key="FilterPopupTitleBrush" GradientStops="{Binding GradientStops, Source={StaticResource ComboBoxFocusBackgroundBrush}}"/>
既存のブラシに基づいてカスタムブラシを作成するこの方法は、事前定義されたテーマを次のように拡張する場合に特別に役立ちます Telerik
テーマ、それは良いアプローチではないでしょう XAML
テレリクから。
所属していません StackOverflow