Это может быть достигнуто с помощью пользовательского элемента управления Win Forms.Я работал над проектом, в котором мы должны были расширить MS Word и нуждались в этой функциональности, но тот же пример применим к Excel.
Еще один интересный способ, с которым я столкнулся в сети, - это иметь пользовательский элемент управления Windows.и разместить пользовательский элемент управления WPF в элементе управления Windows!Этот курс позволяет вам воспользоваться всеми удивительными инструментами, которые вы получаете с WPF, вот пример:
1) Перетащите ToggleButton на ленте (Visual Designer). Это будет использоваться, чтобы показать скрыть задачупанель.Использование ToggleButton - хороший выбор, так как при нажатии он подсвечивается.
2) Добавьте приведенный ниже код к событию щелчка ToggleButton
Globals.ThisAddIn.TaskPane.Visible = ((RibbonToggleButton)sender).Checked;
3) Добавьте ссылку из вашего проекта вследующая сборка - WindowsFormsIntegration
4) В ваш ThisAddIn.cs добавьте две директивы с использованием перечисленных ниже:
using Microsoft.Office.Tools;
using System.Windows.Forms.Integration;
5) Добавьте два пользовательских элемента управления
5.1) Пользовательский контроль (имя - taskPaneControl1)
5.2) Пользовательский контроль (WPF), (имя - con)
Использование имен, которые я использовал, поможет при копировании / вставкеприведенный ниже код, но любыми способами измените его, если хотите
6) Добавьте приведенный ниже код в ThisAddIn.cs class
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 панель задач будет скрыта, чтобы переключить свойство Visible, чтобы изменить его в событии запуска.,Перейдите к кнопке ToggleButton и несколько раз нажмите ее, чтобы убедиться, что панель задач отображается, как и ожидалось
Также посмотрите на следующую ссылку, большая часть моего кода пришла отсюда - http://xamlcoder.com/cs/blogs/joe/archive/2007/07/17/using-wpf-with-vsto-office-2007.aspx