visual tutorial studio que puede presentacion hacer español ejemplos con aplicacion animaciones c# wpf mvvm cultureinfo currentuiculture

c# - tutorial - wpf presentacion



Configuración de la cultura(en-IN) globalmente en la aplicación WPF (3)

Creo que necesitarás agregar lo siguiente.

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-IN"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN"); FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

Leer más aquí:

http://www.west-wind.com/weblog/posts/2009/Jun/14/WPF-Bindings-and-CurrentCulture-Formatting

Solo para darle un ejemplo, así es como inicializo la Cultura en mi programa, según la configuración del usuario, pero simplemente puede reemplazar UserSettings.DefaultCulture y UserSettings.Default.UICultrue con su Cultura deseada.

private static void InitializeCultures() { if (!String.IsNullOrEmpty(UserSettings.Default.Culture)) { Thread.CurrentThread.CurrentCulture = new CultureInfo(UserSettings.Default.Culture); } if (!String.IsNullOrEmpty(UserSettings.Default.UICulture)) { Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserSettings.Default.UICulture); } FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); }

Tengo una aplicación que se basa en India y estoy configurando la cultura como:

Thread.CurrentThread.CurrentUICulture = new CultureInfo ("en-IN");

El código anterior se establece antes de llamar al método Window - InitializeComponent.

Todavía esto muestra $ como CurrencySymbol en todos los TextBox.

Si enlace el TextBox como sigue, muestra ''Rs''. como símbolo de moneda:

Text="{Binding Salary,Mode=TwoWay,StringFormat=C,ConvertCulture=en-IN}".


Para mí, simplemente funciona, si pongo este código en el método anulado de OnStartup:

public partial class App : Application { public App() { } protected override void OnStartup(StartupEventArgs e) { var vCulture = new CultureInfo("de-DE"); Thread.CurrentThread.CurrentCulture = vCulture; Thread.CurrentThread.CurrentUICulture = vCulture; CultureInfo.DefaultThreadCurrentCulture = vCulture; CultureInfo.DefaultThreadCurrentUICulture = vCulture; FrameworkElement.LanguageProperty.OverrideMetadata( typeof(FrameworkElement), new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); base.OnStartup(e); } }


Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en-IN"); FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

Esto cambiará el idioma predeterminado para toda la aplicación. Querrá usar esto solo en el código de inicio ya que esta configuración solo se puede aplicar una vez por aplicación. Todavía puede anular formularios individuales cuando sea necesario como se indica a continuación

this.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);

Todos los elementos de WPF incluyen una propiedad de Idioma que se puede asignar y determina la Cultura que se utiliza para el formato.

http://www.west-wind.com/weblog/posts/2009/Jun/14/WPF-Bindings-and-CurrentCulture-Formatting