【问题标题】:Best way to set CurrentCulture so it applies to all WPF components设置 CurrentCulture 的最佳方法,使其适用于所有 WPF 组件
【发布时间】:2011-04-28 17:57:38
【问题描述】:

我惊讶地发现WPF doesn't use the CurrentCulture for bindings, instead defaulting to en-US

在纯 WPF 应用程序中,可以通过 setting the language globally once in the App class 在一处修复。

但是,我有一个 WinForms 应用程序正在逐步迁移到 WPF,并且包含多个 WPF 用户控件。确保 CurrentCulture 用于所有 UserControl 的最佳/最简单方法是什么?我真的必须让我的所有 UserControls 都继承自执行此操作的基类,还是有某种方法可以全局设置它?

【问题讨论】:

    标签: wpf binding localization


    【解决方案1】:

    您可以使用稍微不同的方法,从ElementHost 派生一次,并在实例化您的 WPF UserControl 实例时对其进行操作。例如,您可以创建一个带有ChildChanged 事件处理程序的LocalizingElementHost,它对孩子执行您在基类中所做的事情。

    【讨论】:

    • 将我接受的答案更改为这个答案。从 ElementHost 派生看起来越来越有吸引力 - 实施此知识库文章中的解决方法的最新充分理由:support.microsoft.com/kb/955753
    【解决方案2】:

    您仍然可以对LanguageProperty.OverrideMetadata 使用相同的方法,只需将其放在程序的开头(Main 方法)。

    【讨论】:

    • +1 - 这个答案和 Rick Sladkey 的答案同样有效,我接受这个答案,因为这是我最终实施的。
    猜你喜欢
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    相关资源
    最近更新 更多