- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我程序的主菜单使用了一个由MenuItems
组成的ContextMenu
。在程序本地化期间(使用资源字典),我将 DynamicResource
设置为每个 MenuItems
的 Header
。奇怪的是 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/
我对 DynamicResource 和 MergedDictionary 有疑问。我有一个可以用不同语言(英语、西类牙语、德语)显示的软件,并且我有很多 ResourceDictionaries。我
FrameworkElement 的 FindResource 方法允许获取在此框架元素中定义的资源。但是,我有一些动态资源位于运行时加载的另一个程序集中。从 XAML 中使用 DynamicReso
我有一个 WPF (3.5) 应用程序,它使用 Prism 以编程方式实例化多个 View ,然后将它们添加到区域中。我看到的问题是 View 中作为 DynamicResources 应用的样式在第
我的应用程序从单独的 XAML 文件中定义的资源字典加载所有字符串。 DynamicResource 键在运行时可能不存在。 在普通绑定(bind)中有一个 Fallback 值,可以像这样使用:
似乎使用 DynamicResource 引用应用程序级资源可能会导致发生内存泄漏。 请参阅此 WPF 论坛 post了解更多信息、如何重现它以及一些解决方法。 我的问题是:还有其他人遇到过吗?如果是
情况看起来是这样的: 我在应用程序中有很多图标,它们的大小不一。 例如,我使用图标作为 DynamicResource: 部分图标为.xaml格式,部分图标为.png格式 我添加了新的图标,例如:
如果 Resources 字典不可观察,DynamicResource 引用如何工作? 资源字典的添加/删除方法是否具有内部代码,可以“轮询”所有 DynamicResource 引用并在删除或添加它
如果没有,我怎样才能实现类似的行为?我想将某个控件的 Backgrond 属性绑定(bind)到 Brush 类型的属性。当该属性设置为 null 时,我想使用默认背景(使用资源键解析)。 最佳答案
我有一个带有该 XAML 的 UserControl:
我正在尝试将 DynamicResource 值绑定(bind)到位于 viewmodel 中的公共(public)属性,然后再对其进行操作。静态资源基本上显示的是图像。任何建议,谢谢。
这不是 MahApps.Metro 特定的,但这恰好是我正在使用的。我有一组 ViewModel,它们有一个 string 属性,表示要使用资源 XAML 文件中的图标。 public class C
我在使用 ComponentResourceKey 时发现一些意外行为。出现问题是因为我使用了 SystemColors 类中使用的名称。 考虑以下代码: 首先,我将 a 中的 ComponentRe
我正在使用 ResourceDictionary 在 .NET 4 中进行本地化。有没有人有使用字符串格式的值的解决方案? 例如,假设我有一个键为“SomeKey”的值: You ran {
以下代码不起作用。我如何使它工作? 最佳答案 这是 DynamicResource MarkupExtension 的错误用法.正确的是: 假设您有一个资源,其 key “VM.ImageKey”
视觉工作室 2010 | .NET/WPF 4.0 我认为这可能是 WPF 错误,但我似乎找不到关于它的错误报告。为了弥补我只是遗漏了一些明显的可能性,我转向 stackoverflow 寻求答案!
这是场景: 1)打开Visual Studio 2008,新建项目... 2)选择WPF自定义控件库作为项目类型 3) 打开位于 Themes 文件夹中的 Generic.xaml 资源字典 4)添加
我想知道是否有一种方法可以将 wpf 样式的 basedOn 属性与动态资源一起使用。例如 这例如抛出一个错误,表明动态资源与 BaseOn 样式结合使用是不可能的。 我想知道怎么会有人这
我正在尝试动态更改画笔的颜色。我写了一个非常简单的例子,但我不明白为什么它不起作用。 我已经在我的应用程序的 ResourceDictionary 中定义了前景颜色和使用该颜色作为 DynamicRe
我正在尝试根据状态和事件为边框着色。我有一个开启和关闭状态,带有“Poked”事件。 On = Green,Off = Red,当 Poked 时,我想从蓝色淡化回其原始颜色(基于其状态)。所有都在应
我程序的主菜单使用了一个由MenuItems组成的ContextMenu。在程序本地化期间(使用资源字典),我将 DynamicResource 设置为每个 MenuItems 的 Header。奇怪
我是一名优秀的程序员,十分优秀!