我们的目标是为用户提供不同的应用程序语言和格式设置(例如,英文文本但德文日期/数字格式)。到目前为止,我已经尝试了不同的方法,最有希望的是这个(当然是简化的硬编码版本):
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 的情况下实现所需的行为?
当我尝试在最后一行而不是英语中使用德国文化时,一些文本是德语而不是英语(这又是不正确的)。
最佳答案
关于c# - 具有不同 CurrentCulture 和 CurrentUICulture 的 WPF 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30785460/