Frage

Warum diese Codezeile

<TextBlock Text="{Binding Net, StringFormat=c}"/>

Ausgabe das Ergebnis als xx.xx $, wenn alle meine regionalen Einstellungen Großbritannien gesetzt. Ich erwarte, dass es als £ xx.xx ausgegeben wird. Irgendwelche Ideen? Ich habe versucht, verschiedene Varianten des String einschließlich String = {} {0: C}. Aber immer noch das gleiche Ergebnis

Dank für das Schauen.

War es hilfreich?

Lösung

Ich bin nicht sicher, ob dies wurde in .NET 4, behoben, aber WPF hat nie die aktuelle Kultur aufgenommen, wenn die Dinge wie eine Währung oder Termine zu machen. Es ist etwas, das ich betrachte eine massive Aufsicht, aber zum Glück ist leicht korrigiert.

Ihre App-Klasse:

protected override void OnStartup(StartupEventArgs e)
{
    FrameworkElement.LanguageProperty.OverrideMetadata(
        typeof(FrameworkElement),
        new FrameworkPropertyMetadata(
            XmlLanguage.GetLanguage(
            CultureInfo.CurrentCulture.IetfLanguageTag)));
    base.OnStartup(e);
 }

Unter diese ausgezeichnete Post für weitere Informationen.

Andere Tipps

ich Language = "en-GB" im Hauptfenster z.

<Window x:Class="AllocateWPF.Vouchers"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Test" Height="692" Width="1000" Language="en-GB">

Was funktioniert für mich:
1) In App.xaml Überschreibung OnStartup () und fügen Sie - System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("et-EE");

2) Definieren Sie in XAML @ Fensterebene - xmlns:sysglb="clr-namespace:System.Globalization;assembly=mscorlib"

3) In XAML - <TextBox Text="{Binding Path=Price, StringFormat='{}{0:C}', ConverterCulture={x:Static sysglb:CultureInfo.CurrentUICulture}}" />

Das richtig picks up jeden benutzerdefinierte Ländereinstellungen. Obwohl ich bin mit einem manuell erstellt Culture im ersten Schritt, ich bin sicher, dass es möglich ist in einem der statischen Typen passieren - zB. System.Globalization.CultureInfo.CurrentCulture (ich habe es allerdings nicht getestet ...)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top