首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF:本地化WPF功能区QAT上下文菜单文本

WPF:本地化WPF功能区QAT上下文菜单文本
EN

Stack Overflow用户
提问于 2011-02-16 16:54:49
回答 4查看 1.2K关注 0票数 1

我正在玩.NET 4.0WPF功能区,正在寻找一种本地化功能区上下文菜单字符串的方法。默认情况下,右键单击ribbon会显示类似“最小化Ribbon”的项目。我想本地化这些字符串,例如显示"Multifunktionsleiste verbergen“。

我该怎么做呢?这到底有没有可能?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-27 23:35:44

一个(希望)对userxyz解决方案的完整扩展:

代码语言:javascript
复制
        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");
票数 1
EN

Stack Overflow用户

发布于 2011-02-16 17:20:21

我不确定,但如果不重新编译源代码中的库(如果我不正确的话,最好是有人在这里),因为功能区库定义了ResourcesManager

代码语言:javascript
复制
new ResourceManager("ExceptionStringTable", typeof(SR).Assembly);

如果要更改源文件,这些文本将存储在名为ExceptionStringTable.txt的资源文件中。

字符串的标识符为:

  • RibbonContextMenu_ShowQATAbove
  • RibbonContextMenu_ShowQATBelow
  • RibbonContextMenu_MaximizeTheRibbon
  • RibbonContextMenu_MinimizeTheRibbon

库的源代码可以从here下载。在RibbonControlsLibrary\ resources \中,您可以找到Ribbon的资源实现。

票数 1
EN

Stack Overflow用户

发布于 2011-09-13 16:59:46

另一种方法是用反射替换这些值:

代码语言:javascript
复制
  FieldInfo pi = typeof(Microsoft.Windows.Controls.Ribbon.RibbonContextMenu).GetField("AddToQATText", (BindingFlags.NonPublic | BindingFlags.Static));
  pi.SetValue(null, "Localized text");

此代码必须在首次使用功能区控件(通常是主窗口的InitializeComponent )之前执行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5014356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档