gpt4 book ai didi

wpf - 设置单个 WPF 用户控件的文化

转载 作者:行者123 更新时间:2023-12-01 01:18:58 26 4
gpt4 key购买 nike

我编写了一个与“en-US”以外的文化不兼容的用户控件。此外,不可避免地将此用户控件嵌入具有非“en-US”文化的应用程序中。那么是否可以强制应用程序不更改此用户控件的文化?
最好在用户控件中有一个解决方案。

我已阅读此主题:
Localizing a WinForms Application with Embedded WPF User Controls
但我不能使用 WpfLocalization.LocalizationScope.SetCulture
这个功能真的存在吗?

还有一个 可本地化 可以设置为 的标签错误 但它仅用于 中的资源定义.csproj 文件:
http://msdn.microsoft.com/en-us/library/ms788718.aspx

那么有没有人对这个问题有任何想法?

更多说明:
假设我们有一个具有文化 X 的应用程序和一个与文化“en-US”兼容的用户控件。这个用户控件有一个 DateTime 类型的依赖属性,它通过这种方式获取它的值:

<my:uc1 x:Name="UserControl1" Date="4234/12/22" />

当应用程序文化为“en-US”时,用户控件将获得 "4234/12/22"但是当应用程序文化是别的东西时,它会转换 "4234/12/22"自动发送到应用程序自己的日历并提供 "0744/04/08"到用户控件并破坏用户控件背后的每个逻辑!这完全是一场灾难。

我想通过将用户控件的区域性设置为“en-US”来防止这种转换。

希望我已经充分说明了情况。

最佳答案

您可以设置 FrameworkElement.Language 您的控件的属性或应用 xml:lang属性到您的控件的 XAML。您必须设置的值是 en-US .

您使用此属性/属性设置的区域性会影响特定区域性字符串在控件中的转换方式。例如。如果您显示 DateTime使用 D (长日期)格式,您会得到类似 Monday, 30 April 2012 的内容当xml:lang="en-US"30. april 2012xml:lang="da-DK" .

但是,如果您在 XAML 中指定日期,例如

<my:uc1 x:Name="UserControl1" Date="4/30/2012" />

该日期使用 CultureInfo.InvariantCulture 解析(基本上 en-US )。这不是你描述的行为。您对实际问题的描述有点含糊,但要验证我的说法,您可以尝试输入 30/4/2012日期并查看它无法编译。不仅当 Visual Studio 当前的文化是 en-US 时,它才会这样做。但在我的情况下也是如此 da-DK (其中日期格式为 d/M/yyyy )。

关于wpf - 设置单个 WPF 用户控件的文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10379364/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com