Nello sviluppo di applicazioni WPF la formattazione di date, numeri o informazioni provenienti da database in funzione della lingua dell'utente è d'obbligo. Nel .NET Framework l'oggetto Thread possiede due proprietà CurrentCulture e CurrentUICulture di tipo CultureInfo che indicano rispettivamente la lingua da usare per la formattazione di numeri e date, e la lingua per la nazionalizzazione delle risorse. Normalmente queste proprietà sono automaticamente impostate in base al sistema operativo e vengono sfruttate da ASP.NET o WinForms.
In WPF però non è così e l'informazione della lingua è affidata alla proprietà Language, per default impostata su en-US, definita in FrameworkElement e in FrameworkContentElement.
Ecco un semplice esempio per formattare la data in base alla lingua italiana:
<TextBlock Language="it-IT" Text="{Binding Source={x:Static sys:DateTime.Now}}" />
La proprietà Language viene ereditata dagli elementi padri che la valorizzano perciò è possibile creare interfacce miste che mostrano contenuti con formattazioni di lingue diverse. In alternativa basta impostare o da codice o da markup la lingua a livello di Window o Page e per avere l'intera pagina formattata. L'esempio seguente adegua la lingua in modo automatico in base al sistema operativo:
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:st="clr-namespace:System.Globalization;assembly=mscorlib" Language="{Binding Source={x:Static st:CultureInfo.CurrentUICulture}}" >
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Personalizzare gli elementi del controllo SwipeView in Xamarin Forms
Il futuro delle applicazioni Windows con .NET 5
Validazione dei parametri con le Guard API della Universal Windows Platform
Utilizzare la libreria FluentValidation per validare formalmente un oggetto .NET
Sviluppare applicazioni con supporto al doppio schermo con Xamarin
Modificare il behavior del controllo SwipeView in Xamarin Forms
Creare un controllo Expander in un'app Xamarin Forms
Il controllo XAML SwitchPresenter nella Universal Windows Platform
Effettuare il multibinding in un'applicazione Xamarin Forms
Gestione dei token negli input di testo con la Universal Windows Platform
C#/WinRT: integrare l'ecosistema di Windows 10 nelle applicazioni .NET
Dark mode e selezione dei temi in un'applicazione Xamarin Forms
I più letti di oggi
- Blazor Conference 2021 - Online
- Track 1: @dbochicchio e @cristiancivera con 'Blazor for absolute beginners'Track 2: @apomic80 con 'Dynamic UI with Blazor WebAssembly'Track 3: #aspilive Seguici live su => https://aspit.co/BlazorConf-21
- Track 1: @GiampaoloTUCCI con 'Progressive Web Apps with Blazor'Track 2: @dottor con 'Blazor Tips&Tricks'Track 3: #aspilive Seguici live su => https://aspit.co/BlazorConf-21
- Track 1: @cristiancivera con 'Using Components in Blazor'Track 2: @crad77 con 'Blazor and ASP.NET Core with GraphQL and HotChocolate'Track 3: #aspilive Seguici live su => https://aspit.co/BlazorConf-21