gpt4 book ai didi

c# - DynamicResource 未显示正确的值

转载 作者:行者123 更新时间:2023-11-30 23:14:12 24 4
gpt4 key购买 nike

我对 DynamicResource 和 MergedDictionary 有疑问。我有一个可以用不同语言(英语、西类牙语、德语)显示的软件,并且我有很多 ResourceDictionaries。我给你一个字典的例子,叫做“Documentation.xaml”:

<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">

<system:String x:Key="ProductNumber">Product Number</system:String>
<system:String x:Key="Notes">Notes</system:String>
<system:String x:Key="Logo">Logo</system:String>
<system:String x:Key="InspectionTask">Inspection task</system:String>
<system:String x:Key="ProductDescription">Product Description</system:String>
</ResourceDictionary>

这是我的“默认”ResourceDictionary。我还有另外两个字典,分别称为“Documentation.de-DE.xaml”和“Documentation-es-ES.xaml”,用于德语和英语。它们与默认词典几乎相同。唯一的区别是显示的字符串。

现在解决我的问题:当我通过“DynamicResource”访问资源时,我从事件词典中获得了结果。 (示例:我得到西类牙语“ProductDescription”的“Description de producto”。)如果条目在词典中可用,一切正常。当一个条目不可用时,就会出现问题。假设以下情况:我正在以西类牙语运行该软件,想将其更改为德语,但字典中的一个条目不可用,因此该软件未使用默认条目。我仍然有来自西类牙语词典的值(value)。

在我看来,在这种情况下 DynamicResource 会崩溃并且不会更改。我没有证据证明它真的崩溃了。我唯一的事实是,如果条目不存在,文本框将不会改变!有没有办法处理这次崩溃? (如果是一个)

希望我有您需要的所有信息。如果不是请告诉我

最佳答案

Assuming following situation: I am running the software in spanish and want to change it to german, but one entry in the dictionary is not available, then the software is not using the default entry for it. I still has the value from the spanish dictionary.

这是预期的行为。使用 DynamicResource 标记扩展设置的目标属性只会在资源更改时更改。如果资源被移除,目标属性将不会被重置。

您应该确保每个 ResourceDictionary 包含完全相同的翻译键。

另一种选择是实现您自己的自定义标记扩展。有关这方面的更多信息,请参阅以下链接。

https://wpftutorial.net/LocalizeMarkupExtension.html http://10rem.net/blog/2011/03/09/creating-a-custom-markup-extension-in-wpf-and-soon-silverlight https://github.com/SeriousM/WPFLocalizationExtension https://www.codeproject.com/articles/35159/wpf-localization-using-resx-files

关于c# - DynamicResource 未显示正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43251306/

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