c# - 是否可以在不使用色带设计器的情况下更改色带类型?
问题描述
我已经开始编写一个 Outlook 插件。当用户编写新电子邮件或回复某些电子邮件时,我想添加一些按钮/选项卡。我知道我需要更改功能区类型,以便能够在给定情况下放置这些新控件,但是没有功能区设计器可以做到吗?我不喜欢使用功能区设计器(并手动编写所需的所有代码),但不知道如何在没有它的情况下进行操作,并且不确定是否可能。
编辑:有一点误解。
我知道如何为 Excel/Word/Powerpoint 等编辑/创建 Office 功能区。问题与 Outlook 有关,因为在 Outlook 中有多个“视图”。对于 Excel/Word/Powerpoint,有一种“类型”的功能区。根据 Outlook 中的功能区类型,它以不同的视图显示。如果手动创建功能区,我找不到可以指定它的位置。
我在 MS 文档中找到了一些内容:
public string GetCustomUI(string ribbonID)
{
string ribbonXML = String.Empty;
if (ribbonID == "Microsoft.Outlook.Mail.Compose")
{
ribbonXML = GetResourceText("Trin_RibbonOutlookBasic.Ribbon1.xml");
}
return ribbonXML;
}
解决方案
你绝对是在正确的道路上——一切皆有可能。此外,功能区设计器并未提供 Fluent UI 的所有功能。如果您想要实现的不仅仅是在 Office 应用程序中使用控件的静态自定义选项卡,您需要使用功能区 XML。演练:使用功能区 XML 创建自定义选项卡一文演示了如何使用功能区 (XML) 项创建自定义功能区选项卡。
Fluent UI(又名 Ribbon UI)在以下系列文章中有深入描述:
- 为开发人员自定义 2007 Office Fluent 功能区(第 1 部分,共 3 部分)
- 为开发人员定制 2007 Office Fluent 功能区(第 2 部分,共 3 部分)
- 为开发人员定制 2007 Office Fluent 功能区(第 3 部分,共 3 部分)
如何:将功能区从功能区设计器导出到功能区 XML文章可以帮助您将功能区从设计器导出到功能区 XML 并直接编辑 XML。
推荐阅读
- google-cloud-platform - Google 负载均衡器运行状况检查失败
- web3js - 我可以使用什么合约 ABI 来制作具有将 eth 从我的合约钱包转移到接收地址的功能的合约
- python - 类型错误:列 'year_2021' 具有 dtype 对象,不能将方法 'nlargest' 用于此 dtype
- node.js - UnhandledPromiseRejectionWarning: MongoParseError: URI 格式错误,无法解析
- java - 如果使用for循环不为null,如何检索ArrayList中元素的值?
- bash - 当 awm 命令返回失败时停止 bash 脚本
- excel - Excel365 CSV 导入在文本字段中保留分隔引号
- sql-server - 在删除 SQL Server 之前执行插入语句
- java - 认证失败;嵌套异常是 javax.mail.AuthenticationFailedException
- git - 为什么 2 个哈希值与 1 个哈希值的 git diff 输出不同?