编程方式自定义Office 2010功能区UI

2023-11-02 02:40

本文主要是介绍编程方式自定义Office 2010功能区UI,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Microsoft Office功能区可能是我们几乎在每个MS Office加载项中都使用的一个组件。今天将详细介绍Office 2010 Fluent Ribbon UI以及各种方法,以便根据自身的需求进行自定义。我正在使用 Add-in Express 2010 for Office和net。

    首先,打开Visual Studio并创建一个新的ADX COM加载项项目。


    选择编程语言,Microsoft Office 2010作为我们的加载项将支持的最低版本,Microsoft Outlook作为受支持的应用程序。


创建自定义上下文Office 2010功能区选项卡

    通过单击其工具栏按钮,将新的ADXRibbonTab组件添加到AddinModule设计器。之前,我们将控件添加到我们的新功能区,请你注意标签的丝带和上下文属性。将Ribbons属性设置为OutlookMailRead并将Context属性设置为OutlookItem.TabSetAttachments将使您的功能区选项卡仅在用户打开电子邮件并单击附件时显示。


添加另一个ADXRibbonTab组件,并将其Ribbons属性设置为OutlookExplorer,将其Context属性设置为Outlook.TabSetAppointment。这将导致选项卡仅在用户在Outlook日历中选择约会时显示,如以下屏幕截图所示。


将各种控件添加到自定义Office 2010功能区选项卡

    接下来,看一下可以添加到功能区选项卡的控件。添加另一个ADXRibbonTab组件并将其Ribbons属性设置为OutlookExplorer。将功能区组添加到功能区选项卡。所有功能区选项卡控件都必须包含在功能区组中。将功能区组的CenterVertically属性设置为True将导致组中包含的所有控件垂直居中。如果属性设置为False,则控件将对齐到组的顶部。

    默认情况下,向Office功能区组添加新控件时,控件将相互添加。如果您希望将控件添加到彼此旁边,请将ADXRibbonBox控件添加到该组并将其BoxStyle属性设置为Horizo​​ntal。通过组合Boxes并更改其BoxStyle属性,您可以完成复杂的布局。对于我们的示例,我们将添加一个编辑框,它类似于文本框控件但具有内置标签。通过更改Caption属性指定标签文本,并通过在SizeString属性中输入字符串来设置编辑框的大小,例如'wwwwwwwwwwww'将使编辑框长度为12个字符。

    向组中添加一个按钮,并将其Size属性设置为Large,将Caption属性设置为Connect ...最后,添加Ribbon对话框启动器控件。此控件使您能够向用户显示任何Windows窗体。例如,当您要向用户显示无法放在功能区上的其他选项或功能时,请使用此选项。若要为Dialog Box Launcher控件的OnAction事件添加事件处理程序,请在控件的“事件”列表中双击OnAction事件。


要在用户单击控件时显示Windows窗体,请添加以下代码:

private void connectionOptionsRibbonDialogBoxLauncher_OnAction(object sender,IRibbonControl control, bool pressed)
{using (frmConnectionDetails frmConnection = new frmConnectionDetails()){frmConnection.ShowDialog();}
}

在此阶段,Office 2010功能区选项卡的设计应类似于以下图像:


添加另一个功能区组并将ADXRibbonButtonGroup添加到新组。功能区按钮组完全符合名称的含义; 它为您提供了将功能区按钮组合在一起的方法。可以将以下控件添加到Office 2010中的功能区按钮组(除了功能区分隔符之外,您可以在Office 2007中添加相同的控件):

按键
拆分按钮
画廊
菜单
分隔器
添加Ribbon Combobox和Ribbon DropDown。这两个控件之间的区别在于,您只能选择DropDown控件列表中的现有值,而ComboBox是文本框和下拉列表之间的组合,用户可以从列表中选择一个值或输入自己的值。

    另一个有趣的控件是Ribbon Gallery控件。通过设置控件的“ 列和行”属性,您可以指定控件项集合中的项目的显示方式,在以下屏幕截图中,“行”和“列”属性设置为2,控件具有4个项目。


最后,将一个菜单添加到功能区组。可以将以下控件作为子控件添加到功能区菜单:


按键
按键
复选框
画廊
菜单
分隔器

下面是如何组合不同控件以组成Office 2010功能区菜单的图像。


要进一步了解并查看功能区选项卡的可能性,请查看示例项目。

示例下载:Add-in Express for Office and .NET-9.1.4620

这篇关于编程方式自定义Office 2010功能区UI的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327528

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念