.net 如何在WPF应用程序(Windows XP)中全局设置区域性?

.net 如何在WPF应用程序(Windows XP)中全局设置区域性?,.net,c,localization,culture,.net,C,Localization,Culture,我有一个WPF应用程序,它使用第三方控件(如),还提供翻译后的UI(特别是德语,这是我的应用程序的默认语言和唯一语言)。在Win7上,所有内容都以德语显示,在WinXP系统(德语UI)上,第三方控件仍然加载英语资源 我现在已经试过了 Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE"); 还有这个 Thread.CurrentThread.CurrentCulture = CultureInfo.

我有一个WPF应用程序,它使用第三方控件(如),还提供翻译后的UI(特别是德语,这是我的应用程序的默认语言和唯一语言)。在Win7上,所有内容都以德语显示,在WinXP系统(德语UI)上,第三方控件仍然加载英语资源

我现在已经试过了

Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("de-DE");
还有这个

Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");
这导致了所有XAML文件都无法加载,应用程序在加载后几乎已损坏:

这是:

[assembly: NeutralResourcesLanguageAttribute("de")]
现在我几乎没有主意了。还有什么建议吗


除了
UICulture
,它根本不起作用,我正在使用上面在
App.OnStartup
中组合的所有方法,但没有达到预期效果。

尝试链接中的语法


Thread.CurrentThread.CurrentUICulture=CultureInfo.CreateSpecificCulture(“fr”)

问题实际上要简单得多,但我完全忽略了它:翻译的资源位于satellite*.resources.dll程序集中。在我自己的机器上,这些文件由编译器复制到输出目录(到相应的语言代码子目录),在测试机器上(在本例中为XP),这些文件丢失,因为它们尚未添加到安装程序包中


添加*.resources.dll文件后,所有文件都正常工作

根据文档,CurrentUICulture是只读的(get),但在示例中,他们分配了它。谢谢,但我相信在这种情况下CultureInfo.GetCultureInfo和CultureInfo.CreateSpecificCulture之间没有区别。我自己发现这个问题,其实要简单得多。在我的机器上,情况就不同了。创建已更改的当前值,而GetCulture未更改当前值。
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
[assembly: NeutralResourcesLanguageAttribute("de")]