4

我们的目标是为用户提供设置不同的应用程序语言和格式(例如英文文本但德文日期/数字格式)。到目前为止,我已经尝试了不同的方法,最有希望的是这个(当然是简化的硬编码版本):

var german = new CultureInfo("de-DE");
var english = new CultureInfo("en-US");

Thread.CurrentThread.CurrentCulture = german;
CultureInfo.DefaultThreadCurrentCulture = german;

Thread.CurrentThread.CurrentUICulture = english;
CultureInfo.DefaultThreadCurrentUICulture = english;
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(english.IetfLanguageTag)));

不幸的是,最后一行还强制执行日期和数字的英文格式(不仅仅是文本)。并且 FrameworkElement 中没有“CultureProperty”可以覆盖。那么有没有办法在不到处使用 StringFormat 的情况下实现所需的行为呢?

当我尝试在最后一行使用德国文化而不是英语时,有些文本是德语而不是英语(这又是不正确的)。

4

1 回答 1

-1

您可以使用 WPF Converter 默认更改文化设置

于 2015-10-25T16:52:51.740 回答