我正在玩.NET 4.0WPF功能区,正在寻找一种本地化功能区上下文菜单字符串的方法。默认情况下,右键单击ribbon会显示类似“最小化Ribbon”的项目。我想本地化这些字符串,例如显示"Multifunktionsleiste verbergen“。
我该怎么做呢?这到底有没有可能?
发布于 2011-09-27 23:35:44
一个(希望)对userxyz解决方案的完整扩展:
FieldInfo pi;
pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("AddToQATText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "RibbonContext_AddToQATText");
pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("RemoveFromQATText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "RibbonContext_RemoveFromQATText");
pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("ShowQATAboveText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "RibbonContext_ShowQATAboveText");
pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("ShowQATBelowText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "RibbonContext_ShowQATBelowText");
pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("MaximizeTheRibbonText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "RibbonContext_MaximizeTheRibbonText");
pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("MinimizeTheRibbonText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "RibbonContext_MinimizeTheRibbonText");发布于 2011-02-16 17:20:21
我不确定,但如果不重新编译源代码中的库(如果我不正确的话,最好是有人在这里),因为功能区库定义了ResourcesManager
new ResourceManager("ExceptionStringTable", typeof(SR).Assembly);如果要更改源文件,这些文本将存储在名为ExceptionStringTable.txt的资源文件中。
字符串的标识符为:
库的源代码可以从here下载。在RibbonControlsLibrary\ resources \中,您可以找到Ribbon的资源实现。
发布于 2011-09-13 16:59:46
另一种方法是用反射替换这些值:
FieldInfo pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("AddToQATText", (BindingFlags.NonPublic | BindingFlags.Static));
pi.SetValue(null, "Localized text");此代码必须在首次使用功能区控件(通常是主窗口的InitializeComponent )之前执行
https://stackoverflow.com/questions/5014356
复制相似问题