c# - 只设置单个 View 的 Culture,而不是整个程序

标签 c# .net wpf mvvm cultureinfo

我已经尝试了很长一段时间来寻找一种方法来设置仅单个 View 和/或其 View 模型的文化。

到目前为止我用过:

    System.Globalization.CultureInfo NewCulture = new System.Globalization.CultureInfo("en-US");
    Thread.CurrentThread.CurrentCulture = NewCulture;

这给了我相当好的成功。

但是,它设置了整个线程的文化。(我可能没有这个)。

不得触及线程文化。

问题

您是否知道我可以将 View / View 模型的区域性设置为 en-US 的任何其他方法?

它不能设置线程的文化,也不能设置任何其他 View 或其 View 模型的文化,只能设置我选择的 View 和 View 模型。

最佳答案

这取决于您想通过改变文化来实现什么。 FrameworkElement 类有一个 Language 属性,您可以设置该属性来更改元素的语言。例如,它可以用于更改日历的语言/文化和数字的格式:

<Calendar Language="en-US" />

<TextBlock Text="{Binding DecimalValue}" Language="sv-SE" />

您可以在 View 模型的属性中指定语言并绑定(bind)到此:

<TextBlock Text="{Binding Val}" Language="{Binding Language}" />

关于c# - 只设置单个 View 的 Culture,而不是整个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41138451/

相关文章:

c# - 在 C# 中使用 Windows 默认编辑器打开图像

c# - XML 绑定(bind)到 WPF 中的 DataGrid

WPF - Listview 数据绑定(bind)列宽问题

c# - 异步方法 C# 中的异常处理

c# - 如何判断哪个物理设备在 C# 中单击了按钮?

c# - 为什么标志枚举通常用十六进制值定义

c# - 从 C++ : how to pass nullptr to DateTime? 调用 C#

c# - 打印一个数组的内容(代码为一行,用于visual studio Immediate window)

.net - 为什么 .NET 4.5 中没有 CallerTypeNameAttribute?

WPF 上下文菜单放置调整事件