回答
这是一个艰难的挑战,因为功能区和任务窗格是独立的实体。其中一个主要挑战是每个检查员只有一个Ribbon类实例和任务窗格的多个实例。为此,需要对Office内部进行一些深入的了解。
解决方案还取决于您是使用功能区XML还是功能区设计器。你使用哪种方法?
我假设您正在使用带有可视化设计器的Excel VSTO加载项。你可以实现你想要的通过使您的自定义任务窗格通过访问您的外接一个属性:
public partial class ThisAddIn
{
private CustomTaskPane taskPane;
internal CustomTaskPane TaskPane
{
get
{
return this.taskPane;
}
}
...在你的丝带上增加一个按钮,并添加事件处理click事件,通过全局访问加载项:
private void MyRibbonButton_Click(object sender, RibbonControlEventArgs e)
{
Globals.ThisAddIn.TaskPane.Visible = true;
}
我写了一篇文章而回其describes the process,你会发现它是有用的。 使用xml功能区也是可行的。
这可以通过使用Win Forms用户控件来完成。 我曾参与一个项目,我们必须扩展MS Word并需要此功能,但同一个示例将应用于Excel。
我在网上偶然发现的另一个有趣的方式是拥有一个Windows用户控件并在Windows控件中托管一个WPF用户控件! 这个课程允许你利用WPF获得的所有优秀工具,下面是一个例子:
1)在功能区(可视化设计器)上放置一个ToggleButton。这将用于显示隐藏任务窗格。 使用ToggleButton是一个不错的选择,因为按下时突出显示。
2)添加以下代码的切换按钮
Globals.ThisAddIn.TaskPane.Visible = ((RibbonToggleButton)sender).Checked;
3 click事件)从您的项目引用添加到下列组件 - WindowsFormsIntegration程序
4)在你ThisAddIn.cs添加下面列出的两条使用指令:
using Microsoft.Office.Tools;
using System.Windows.Forms.Integration;
5)添加两个用户控件
5.1)用户控制(名称 - taskPaneControl1)
5.2)用户控件(WPF),(名字 - CON)
用我用过的名字会帮助时,复制/粘贴下面的代码,但通过任何方式改变它,如果你想
6)将以下代码添加到ThisAddIn。CS类
public CustomTaskPane TaskPane
{
get{return taskPaneValue;}
}
private TaskPaneControl taskPaneControl1;
private CustomTaskPane taskPaneValue;
private WpfControl con;
internal void AddTaskPane()
{
ElementHost host = new ElementHost();
con = new WpfControl();
host.Child = con;
host.Dock = DockStyle.Fill;
taskPaneControl1 = new TaskPaneControl();
taskPaneControl1.Controls.Add(host);
taskPaneValue = this.CustomTaskPanes.Add(taskPaneControl1, "My Taskpane");
taskPaneValue.Visible = true;
}
6)下方添加到启动事件的两个代码在你ThisAddIn.cs
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
AddTaskPane();
taskPaneValue.Visible = false;
}
当MS Office应用程序打开时,任务窗格将被隐藏的切换可见属性在启动事件中更改此设置。 导航到切换按钮,按了几次,以确保任务窗格显示如预期
也有看看下面的链接我的大多数代码从这里走过 - http://xamlcoder.com/cs/blogs/joe/archive/2007/07/17/using-wpf-with-vsto-office-2007.aspx
- 1. Outlook自定义任务窗格控件
- 2. WPF功能区控件自定义RibbonMenuItem
- 3. 从功能区功能文件和任务窗格访问Office.context.document.settings
- 4. 同时具有自定义功能和任务窗格
- 5. 如何获取自定义类对象的java.lang.Type对象?
- 6. 获取自定义Scala对象的类
- 7. 无法隐藏excel功能区上的自定义控件
- 8. 如何在自定义DropDown功能区控件上设置选定的项目
- 9. 如何获取功能区自定义选项卡ID?
- 10. 如何绑定自定义类型的对象和控件?
- 11. 停靠自定义任务窗格
- 12. Excel 2016自定义任务窗格
- 13. 如何动态填充自定义功能区上的菜单控件?
- 14. JavaScript对象的自定义功能
- 15. 如何摆脱自定义任务窗格的菜单栏?
- 16. 如何替换Outlook(VSTO)中的自定义任务窗格?
- 17. 自定义窗口功能
- 18. 自定义功能区CSS
- 19. 自定义WPF功能区
- 20. wp7:自定义控件的功能
- 21. 其他(已开通),自定义任务窗格显示自定义任务窗格在Outlook中VSTO
- 22. 使用Windows功能区框架的主机自定义控件
- 23. 具有SPGridView控件的自定义SharePoint功能区
- 24. 如何在Office 2013中显示自定义任务窗格?
- 25. 如何将自定义任务窗格添加到Visual Studio
- 26. 添加WinForm的插件自定义任务窗格在Word
- 27. 如何区分自定义单元格中的3个对象
- 28. 与自定义任务C#任务重写功能
- 29. NetOffice - Outlook中约会窗口中的自定义任务窗格
- 30. 功能区中缺少任务窗格按钮