WinRT è un Framework relativamente giovane e, anche se nato dall'esperienza maturata con WPF, ha perso alcune comode proprietà di quest'ultimo.
Una delle feature sncanti è la possibilità di tagliare il contenuto che fuoriesce dal suo contenitore.
In pratica, si tratta di una tecnica che permette di impostare la proprietà Clip di un oggetto, creando una RectangleGeometry con le esatte dimensioni dello stesso.
namespace MyCodeNamespace { public class Clip { public static bool GetToBounds(DependencyObject depObj) { return (bool)depObj.GetValue(ToBoundsProperty); } public static void SetToBounds(DependencyObject depObj, bool clipToBounds) { depObj.SetValue(ToBoundsProperty, clipToBounds); } public static readonly DependencyProperty ToBoundsProperty = DependencyProperty.RegisterAttached("ToBounds", typeof(bool), typeof(Clip), new PropertyMetadata(false, OnToBoundsPropertyChanged)); private static void OnToBoundsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { FrameworkElement fe = d as FrameworkElement; if (fe != null) { ClipToBounds(fe); fe.Loaded += new RoutedEventHandler(fe_Loaded); fe.SizeChanged += new SizeChangedEventHandler(fe_SizeChanged); } } private static void ClipToBounds(FrameworkElement fe) { if (GetToBounds(fe)) { fe.Clip = new RectangleGeometry() { Rect = new Rect(0, 0, fe.ActualWidth, fe.ActualHeight) }; } else { fe.Clip = null; } } static void fe_SizeChanged(object sender, SizeChangedEventArgs e) { ClipToBounds(sender as FrameworkElement); } static void fe_Loaded(object sender, RoutedEventArgs e) { ClipToBounds(sender as FrameworkElement); } } }
Il cuore di tutto lo script è il metodo ClipToBounds, dove viene creata la RectangleGeometry. L'utilizzo del codice è semplicissimo, grazie alla creazione dell'attached property ToBounds.
<Border myNameSpace:Clip.ToBounds="true"> ... </Border>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Ottenere un token di accesso per una GitHub App
Generare token per autenicarsi sulle API di GitHub
Gestire domini wildcard in Azure Container Apps
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare politiche di resiliency con Azure Container App
Testare l'invio dei messaggi con Event Hubs Data Explorer
Recuperare App Service cancellati su Azure
Aggiornare a .NET 9 su Azure App Service
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Creare una custom property in GitHub
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
I più letti di oggi
- La navigazione tra le pagine in Windows Phone 8.1
- Salvare in maniera sicura dati sensibili nelle Universal App con il Credential Locker
- Canary deployment con le pipeline YAML di Azure DevOps
- Registrare un applicazione per gestire l'auto upload in Windows Phone 8
- Tool per amministrare blob, queue e table di Windows Azure
- Creare un feed NuGet privato
- Avviare la mappa in modalità navigazione in Windows Phone 8
- Utilizzare Bootstrap per mostrare dei popup accanto a un controllo
- Building modern web apps with Blazor
- Adattare l'UI a risoluzioni differenti in Windows Phone 8.1