Chi proviene da WPF (o ancora prima da WinForms) rischia di trovarsi spesso spiazzato poiché approcciando la Universal Windows Platform rischia di non trovare determinati controlli alla quale è già familiare, sia che essi siano nativi sia che siano derivati da componenti di terze parti. Uno di questi componenti è senz'altro System.Windows.Media.GradientBrush, utilizzato, al contrario del LinearBrush, per realizzare effetti di luce e colori sotto forma di gradiente radiale.
Per realizzare lo stesso nella Universal Windows Platform abbiamo bisogno del Windows Community Toolkit e, prima di tutto, è necessario aggiungere i pacchetti di NuGet Microsoft.Toolkit.Uwp e Microsoft.Toolkit.Uwp.UI che ci danno accesso ai controlli da utilizzare, quindi importiamo il namespace necessario a livello di pagina XAML:
xmlns:media="using:Microsoft.Toolkit.Uwp.UI.Media"
Una volta importato il namespace, è possibile aggiungere il controllo RadialGradientBrush come riempimento per un qualsiasi oggetto di tipo UIElement. Nel caso dell'esempio seguente, viene applicato per riempire il contenuto di un Rectangle:
<Rectangle Width="300" Height="300"> <Rectangle.Fill> <media:RadialGradientBrush AlphaMode="Premultiplied" RadiusX="0.2" RadiusY="0.2" SpreadMethod="Reflect"> <GradientStop Color="Red" Offset="0" /> <GradientStop Color="Transparent" Offset="0.25" /> <GradientStop Color="Yellow" Offset="0.50" /> <GradientStop Color="Transparent" Offset="0.75" /> <GradientStop Color="Green" Offset="1.0" /> </media:RadialGradientBrush> </Rectangle.Fill> </Rectangle>
La collezione di colori da mostrare come gradiente è impostata all'interno della proprietà GradientStops ma, un particolare da evidenziare per quanto riguarda l'esempio, è il riferimento al valore di AlphaMode: se questo è impostato al valore consigliato di Premultiplied si otterrà una miglior transizione tra i colori e l'effetto trasparente mentre, impostandolo al valore Straight si otterrà un comportamento simile a quanto avveniva in WPF.
Il caso evidenziato produce un risultato simile al seguente:

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire dati sensibili nella configurazione in ASP.NET Core
Definire le impostazioni di cache a livello di controller in ASP.NET Core 7
Utilizzare .NET Framework con le Azure Function in modalità isolata
Gestire server e pc on premise con Azure Arc
Leggere e scrivere su cookie tramite Blazor
Migliorare la scalabilità di ASP.NET Core 7 grazie all'output cache
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Impostare il tema light o dark utilizzando i CSS
Velocizzare l'installazione delle dipendenze in un workflow di GitHub
Leggere la configurazione da Azure KeyVault con logica di retry in ASP.NET Core
Produttività con ASP.NET Core 6
Controllare gli accessi IP alle app con Azure Container Apps
I più letti di oggi
- .NET Conference Italia 2022 - Milano e Online
- Visual Studio 2019 sarà disponibile a partire dal 2 Aprile
- Windows Phone 8.1 Day - Milano
- Speciale per il lancio di Visual Studio 2008, SQL Server 2008 e Windows Server 2008 dal 25/02 al 07/03
- ASP.NET 3.5 Extensions in beta la settimana prossima
- ASPItalia.com Future Web Conference: 15 gennaio 2008, L'Aquila
- Rilasciata la CTP Preview di ASP.NET 3.5 Extensions
- Tutto per portare Visual Studio 2015, ASP.NET 5 e Windows 10 sotto l'ombrellone!
- Real Code Day 4.0: costruire applicazioni reali - Firenze
- Tutto per portarsi il .NET Framework 3.5 sotto l'ombrellone