Я разрабатываю пользовательскую панель задач для Microsoft PowerPoint 2010. Мне нужно, чтобы область задач была синхронизирована между несколькими окнами/презентациями приложений. Панели задач отображаются с помощью кнопки переключения на ленте.PowerPoint 2010 Custom TaskPane в многострочных окнах
Поскольку PowerPoint 2010 отображает каждую презентацию в другом окне документа (это отличается от 2007), мне нужно создать панель задач отдельно для каждого окна и синхронизировать их. Я следил за Microsoft tutorial о том, как создавать панели задач для нескольких окон приложений, и я использую метод CustomTaskPaneCollection.Add(UserControl, String, Object)
, чтобы указать, в каком окне приложения должна быть связана панель задач. В этом случае Object
является PowerPoint.DocumentWindow
, с которым должна быть связана панель задач.
По какой-то причине все мои панели задач создаются в активном окне, а не в окне, которое я назначаю. Например, если я открою 3 презентации PowerPoint и затем переключу панель задач, все три панели задач будут добавлены в активное окно.
Это код, я использую для добавления панели задач, когда переключатель нажимается:
public void AddAllTaskPanes()
{
PowerPoint.DocumentWindows windows = Globals.ThisAddIn.Application.Windows;
if(windows.Count > 0)
{
for (int i=1; i<=windows.Count; i++){
PowerPoint.DocumentWindow window = windows[i];
customTaskPane = this.CustomTaskPanes.Add(new UserControl1(), "My User Control", window);
customTaskPane.Visible = true;
}
}
}
кажется, что это должно успешно добавить каждую панель задач для ее указания window
, и я не могу понять, почему все панели задач ассоциируются с активным окном. Я провел много исследований по этой проблеме и не смог найти решение. Ближайший я нашел this question, однако ответ соответствует PowerPoint 2007, а не 2010, как и ссылки на вопрос.
Любое понимание того, почему PowerPoint может вести себя таким образом, будет с благодарностью.