Definire la lingua degli elementi WPF

di Cristian Civera, in Windows Presentation Foundation, XAML,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi