Как проверить, является ли линейка в режиме разработки 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
Я несколько часов пытался найти подходящую подпись для обратного вызова, но ни одна из моих попыток не была успешной.
В VBA вы можете проверить, установлен флажок или нет, используя следующую команду, которая вернет True
или False
:
Application.CommandBars.GetPressedMso("ViewRulerPowerPoint")
В надстройке С# VSTO вы можете переписать этот код следующим образом:
Globals.ThisAddIn.Application.CommandBars.GetPressedMso("ViewRulerPowerPoint")