Wpf 最佳识别字符串ResourceDictionary的区域设置?

Wpf 最佳识别字符串ResourceDictionary的区域设置?,wpf,localization,Wpf,Localization,我有一个本地化字符串的资源字典。我想将它的一个属性(例如,它的标记)设置为区域设置的名称,这样我就可以很容易地从代码隐藏中识别资源字典。(否则,我会进行一些肮脏的文件名解析,这在很多方面都会冒犯我。) 例如,我想这样做: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micros

我有一个本地化字符串的资源字典。我想将它的一个属性(例如,它的
标记
)设置为区域设置的名称,这样我就可以很容易地从代码隐藏中识别
资源字典
。(否则,我会进行一些肮脏的文件名解析,这在很多方面都会冒犯我。)

例如,我想这样做:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:system="clr-namespace:System;assembly=mscorlib"
                    Tag="de-DE">

    <system:String x:Key="Hello">Hallo Welt!</system:String>

</ResourceDictionary>

你好,韦尔特!
但这会导致
XamlParseException
,因为
ResourceDictionary.Tag
不存在。有没有其他方法可以在这里设置标签?还是有更好的方法来实现我的目标?谢谢

编辑:
为了澄清这一点,我有几个
ResourceDictionary
XAML文件的目录,每个文件都包含特定地区的本地化字符串。例如,当用户将语言环境设置为德语时,我的应用程序会在前面提到的目录中查找以
“de-de.XAML”
结尾的XAML文件,并加载该文件的资源字典。我不喜欢以这种方式受文件名的约束。我认为使用
标记
之类的东西的一个缺点是,我必须先加载字典,然后才能确定它的实际区域设置,因此文件名解析在这方面是成功的。理想的(对我来说)解决方案不依赖于文件名,也不需要加载资源字典。

我有几种方法

  • 如果您的资源字典是一个真正的资源,那么只需将文件名作为区域性即可。我不认为这里有问题,因为只有开发人员才能访问文件名

  • 有一把假钥匙(可怕的方法)

    de-de
    
    这很糟糕,因为您必须实际打开每个字典,并确保第一个字符串是真实的区域性

  • 如果您的资源字典是一个内容文件,那么请像它是一个资源一样执行操作,只要确保在最终用户删除文件时测试错误即可


Woh。不需要。为什么需要知道代码隐藏中的标记?字典是从代码隐藏中的自定义资源字典管理器加载的。我需要一种按区域设置选择/查找资源字典的简单方法,但我不知道如何实现这种关联。对。但是这些资源字典是资源还是内容?顺便说一下,WPF已经实现了一种本地化方法。检查@NestorArturo,是的,我知道,但我的应用程序不能使用LocBaml。资源字典是松散的XAML文件,可以在运行时在文本编辑器中修改。
<system:String x:Key="Culture">de-DE</system:String>