Узнайте, видна ли линейка в PowerPoint с помощью VSTO

1

Как проверить, является ли линейка в режиме разработки PowerPoint видимой/активной с С# VSTO?

Я искал часы в объектной модели PowerPoint. Я пропустил очевидное, или нет флага, указывающего, видится ли линейка или нет?

Существуют ли какие-либо другие обходные пути, чтобы проверить, включен ли линейка или нет? (Мне не нужно настраивать видимость линейки, просто прочитайте значение).


Старая нерабочая рабочая обстановка, указанная ниже (для сохранения соответствующих комментариев)

В качестве обходного пути я попытался расширить ленту и прочитать значение флажка, определенного как idMso = "ViewRulerPowerPoint"

XML

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <commands>
      <command idMso="ViewRulerPowerPoint" onAction="OnRulerAction" />
    </commands> 
</customUI>

Перезвони

public void OnRulerAction(Microsoft.Office.Core.IRibbonControl control, bool pressed)
{
    Debug.Print("Checkbox pressed");
}

Но я получаю следующее сообщение об ошибке:

Callback signature mismatch: OnRulerAction

Я несколько часов пытался найти подходящую подпись для обратного вызова, но ни одна из моих попыток не была успешной.

Теги:
powerpoint
vsto

1 ответ

3
Лучший ответ

В VBA вы можете проверить, установлен флажок или нет, используя следующую команду, которая вернет True или False:

Application.CommandBars.GetPressedMso("ViewRulerPowerPoint")

В надстройке С# VSTO вы можете переписать этот код следующим образом:

Globals.ThisAddIn.Application.CommandBars.GetPressedMso("ViewRulerPowerPoint")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню