设置单个WPF用户控件的区域性

设置单个WPF用户控件的区域性,wpf,user-controls,culture,Wpf,User Controls,Culture,我写了一个用户控件,它与“en-US”以外的文化不兼容。此外,不可避免地将此用户控件嵌入具有非“en-US”文化的应用程序中。那么,是否可以强制应用程序不更改此用户控件的区域性? 最好在用户控件中有一个解决方案。 我读过这篇文章: 但是我不能使用WpfLocalization.LocalizationScope.SetCulture 这个功能真的存在吗 还有一个可本地化的标记,可以设置为False,但它仅用于.csproj文件中的资源定义: 有人知道这个问题吗 更多澄清: 假设我们有一个具

我写了一个用户控件,它与“en-US”以外的文化不兼容。此外,不可避免地将此用户控件嵌入具有非“en-US”文化的应用程序中。那么,是否可以强制应用程序不更改此用户控件的区域性?
最好在用户控件中有一个解决方案。
我读过这篇文章: 但是我不能使用WpfLocalization.LocalizationScope.SetCulture
这个功能真的存在吗

还有一个可本地化的标记,可以设置为False,但它仅用于.csproj文件中的资源定义:

有人知道这个问题吗


更多澄清:
假设我们有一个具有文化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”来防止这种转换

希望我已经澄清了这一情况。

您可以设置控件的属性或将
xml:lang
属性应用于控件的XAML。您必须设置的值为
en US

使用此属性设置的区域性会影响特定于区域性的字符串在控件中的转换方式。例如,如果您使用
D
(长日期)格式显示
DateTime
,您会得到类似于2012年4月30日星期一
xml:lang=“en US”
30时的
。2012年4月
when
xml:lang=“da DK”

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

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


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

感谢您的考虑,但它不会影响仍然不是“en-US”的用户控件区域性。我已经在用户控件加载中检查了区域性,但它仍然和以前一样。@SarahCompard:你能在评论中澄清用户控件区域性的含义吗?如果在XAML中设置
xml:lang
属性,则绑定中的字符串格式将使用适当的
CultureInfo
等。您的用户控件中到底哪里有本地化问题?我在问题中提供了更多详细信息。谢谢你的关注,非常感谢。重点在于CultureInfo.InvariantCulture。我对此一无所知。我临时将线程区域性设置为它并执行我的工作,然后将该区域性返回到其以前的区域性。这在其他文化中是不可能的。你完成了我持续两周的噩梦!!!我已将所有这些设置为我的人力资源和控制,但仍然在en US中格式化数字。这些相同的设置适用于另一个项目:Thread.CurrentThread.CurrentUICulture;CultureInfo.DefaultThreadCurrentCulture;CultureInfo.DefaultThreadCurrentUICulture;CultureInfo.CurrentCulture;CultureInfo.currentui文化;System.Windows.Forms.Application.CurrentCulture;除了你想要使用的令人惊讶的日期(顺便说一句,它不是以“en-US”格式表示的,即
M/d/yyyy
),哪个文化将其转换为“0744/04/08”(更令人惊讶)?@Martin Livesage:这只是一个例子。让我保守这种文化的秘密:&如果我泄露了任何秘密,很抱歉,但是考虑到这一年的时间,我会说希伯来日历。。。更严重的是,这个帖子对我来说真的很有趣,因为我可能很快就要处理双重文化(法语/阿拉伯语或公历/埃塞俄比亚历)的怪事了。