La proprietà Background di Panel, Control, ecc.. è un oggetto di tipo Brush. Nel runtime abbiamo a disposizione diverse sue implementazioni
- SolidColorBrush
- LinearGradientBrush
- RadialGradientBrush
- ImageBrush
- VideoBrush
- WebBrowserBrush
che possiamo usare per 'riempire' un altro oggetto rispettivamente con un colore uniforme, un gradiente lineare, un gradiente radiale, una immagine, un video e una pagina HTML.
Nella necessità di valorizzare tale proprietà attraverso una espressione di binding, ad esempio nel caso in cui l'URL di una immagine da inserire come sfondo provenga da un database, abbiamo la necessità di convertire tale URL in un oggetto di tipo ImageBrush.
Possiamo fare questa operazioni con un converter:
public class ImageUriToImageBrushConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string path = string.Empty; if (!String.IsNullOrEmpty((string)value)) path = (string)value; var image = new BitmapImage(new Uri(path, UriKind.RelativeOrAbsolute)); var imageBrush = new ImageBrush { ImageSource = image, Stretch = Stretch.UniformToFill }; return imageBrush; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } }
Il converter utilizza l'URL per creare un'istanza di BitmapImage, oggetto da utilizzare come ImageSource dell'ImageBrush da far restituire al metodo.
Una volta registrato il converter come di consueto, possiamo mettere in binding la nostra proprietà che espone l'URL dell'immagine sotto forma di string.
<Grid Background="{Binding BackgroundUrl, Converter={StaticResource ImageUriToImageBrushConverter}}" Width="200" Height="100" />
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione ai web component HTML
Utilizzare DeepSeek R1 con Azure AI
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Testare l'invio dei messaggi con Event Hubs Data Explorer
Utilizzare Hybrid Cache in .NET 9
Fornire parametri ad un Web component HTML
Creare una libreria CSS universale: Clip-path
Eliminare una project wiki di Azure DevOps
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Recuperare App Service cancellati su Azure
Eseguire query in contemporanea con EF
I più letti di oggi
- Eseguire una chiamata AJAX per inviare dati al server in Angular 2
- Formati per l'impostazione del colore in CSS3
- la Call For Papert per #netconfit è aperta!invia la tua sessione da https://aspit.co/netconfit-20 puoi parlare di #net5, #aspnet5, #efcore5, #CSharp9 e tutto quello che ruota intorno a #dotnet.
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Impostare un riferimento ad una entity collegata tramite foreign key