Utilizzare un LinearGradientBrush in un altro LinearGradientBrush?
-
02-10-2019 - |
Domanda
Sto cercando di utilizzare uno LinearGradientBrush nella definizione di un altro LinearGradientBrush. Ma non ho idea di tempo questo sarebbe anche il lavoro, e se funziona, ho bisogno di sapere come.
Ad esempio:
<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>
Ringraziandovi in ??anticipo per le risposte
Modifica:
Per ottenere le cose un po 'più chiaro nell'esempio voglio usare "ComboBoxFocusBackgroundBrush" nel "FilterPopupTitleBrush" come un "modello" .Così che ho la stessa sfumatura di colore in entrambe le spazzole senza una copia del "
Soluzione
È possibile condividere l'elenco delle fermate gradiente tra più pennelli, in questo modo: -
<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}" />
Ora è possibile variare la EndPoint
, StartPoint
e altre proprietà di creare diverse varianti dello stesso gradiente di base.
Si può anche fornire lo stesso insieme a RadialGradientBrush
.
Altri suggerimenti
La condivisione un altro modo di fare questo, non è necessario creare una raccolta differenziata, è anche possibile riutilizzare il pennello esistente come
<LinearGradientBrush x:Key="FilterPopupTitleBrush" GradientStops="{Binding GradientStops, Source={StaticResource ComboBoxFocusBackgroundBrush}}"/>
Questo modo di creare un pennello personalizzato in base a pennello esistente sarà utile specialmente quando si desidera estendere temi predefiniti come temi Telerik
, dove non sarebbe buon approccio per cambiare il XAML
da Telerik.