gpt4 book ai didi

c# - 为什么 MenuItems 不能与 DynamicResource 一起使用?

转载 作者:太空狗 更新时间:2023-10-29 21:54:17 31 4
gpt4 key购买 nike

我程序的主菜单使用了一个由MenuItems组成的ContextMenu。在程序本地化期间(使用资源字典),我将 DynamicResource 设置为每个 MenuItemsHeader。奇怪的是 DynamicResource 可以编译,但似乎不会影响本地化期间的任何更改(Headers 上的语言不会更改)。

MenuItem 示例:

//I'm not sure if the x:Name or the PlacementRectangle is interfering with anything...
<ContextMenu x:Name="MainContextMenu" PlacementRectangle="{Binding RelativeSource={RelativeSource Self}}">
<MenuItem Header="{DynamicResource open}" />
</ContextMenu>

MenuItem 控件的约束是什么?它应该与 DynamicResource 一起使用吗?我的总体目标是本地化这些 strings,我该怎么做?

这个程序是在 WPF 中。谢谢。

更新:这是在我的 App.xaml 文件中引用我的资源字典的方式:

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Lang.en-US.xaml" />
</ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<Application.Resources>

更新 2:我的英语资源词典中的示例字符串:

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

<sys:String x:Key="open">Open</sys:String>
</ResourceDictionary>

更新 3:我如何将当前资源词典更改为西类牙语的示例函数:

private void spanishChange_Click(object sender, RoutedEventArgs e)
{
Application.Current.Resources.MergedDictionaries.Clear();

Application.Current.Resources.MergedDictionaries.Add(
(ResourceDictionary)Application.LoadComponent(new Uri("LangspES.xaml", UriKind.Relative)));

LanguageChange.FireLanguageChanged();
}

最佳答案

您是否已将 LANGUAGE.xaml 文件添加到 App.ResourceDictionary 或控件 ResourceDictionary?

例如

<Application.Resources>
<ResourceDictionary Source="LANGUAGE1.xaml" />
<ResourceDictionary Source="LANGUAGE2.xaml" />
</Application.Resources>

如果不是,您如何引用您的资源字典?

更新:

如果你改变

<MenuItem Header="{DynamicResource open}" />

<MenuItem Header="{StaticResource open}" />

然后它会起作用吗?甚至是

<TextBox DockPanel.Dock="Top" Text="{StaticResource open}" />

工作?

看起来你的 xaml 应该可以工作,这让我想知道你是否在你的应用程序中正确设置了本地化?

有关如何在 .net 4.5 中设置本地化,请参阅 this msdn link

关于c# - 为什么 MenuItems 不能与 DynamicResource 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529202/

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