[英]Change Currency symbol/Datetime format in WPF based on Culture
我有一個需要基於系統語言設置的DateTime格式和基於用戶設置的Currency符號的格式的要求。 用戶設置來自用戶選擇國家的組合框。 因此,如果用戶選擇英國,則貨幣應以英鎊顯示,日期時間應以美國格式顯示。
例如:如果系統設置為US,用戶設置為UK,則DateTime格式必須為美國,貨幣符號為£。
我已經使用以下代碼根據系統區域設置更改了區域性信息:
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(
System.Globalization.CultureInfo.CurrentCulture.IetfLanguageTag
)
)
);
如何根據用戶設置格式化貨幣符號。 我在整個應用程序中都使用了文化格式化StringFormat=C2
,它根據系統的語言環境設置顯示貨幣符號。
該應用程序是WPF。
組合框中包含的一些國家是:美國,德國,英國,加拿大
編輯:
我可以使用這樣的東西。 但是,有沒有辦法從我的視圖模型中綁定這些區域性信息?
<StackPanel Margin="10">
<TextBlock Text="{Binding TotalPrice, StringFormat=C2, ConverterCulture='en-UK'/>
<TextBlock Text="{Binding TotalPrice, StringFormat=C2, ConverterCulture='en-US'/>
<TextBlock Text="{Binding TotalPrice, StringFormat=C2, ConverterCulture='de-DE'/>
</StackPanel>
你可能會得到所有相關CultureInfo
使用CultureInfo.CurrentCulture 。
從文檔中:
Windows允許用戶使用“控制面板”中的“區域和語言選項”來覆蓋CultureInfo對象及其關聯對象的標准屬性值。 在以下情況下,CurrentCulture屬性返回的CultureInfo對象反映了這些用戶替代:[...]
獲取CultureInfo對象后,您可以使用其NumberFormat
獲得貨幣符號,如下所示:
Console.WriteLine(currentCulture.NumberFormat.CurrencySymbol)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.