Я создаю приложение VSTO (WinForms) и следую инструкциям по адресу:
https://docs.microsoft.com/en-us/visualstudio/vsto/walkthrough-creating-a-custom-tab-by-using-ribbon-xml?view=vs-2019
Шаги показаны ниже:
- В меню «Проект» щелкните «Добавить новый элемент».
- В диалоговом окне «Добавить новый элемент» выберите «Лента» (XML).
- Измените имя новой ленты на MyRibbon и нажмите Добавить. Файл MyRibbon.cs или MyRibbon.vb откроется в дизайнере. Файл XML с именем MyRibbon. xml также добавляется в ваш проект.
- В обозревателе решений щелкните правой кнопкой мыши ThisAddin.cs или ThisAddin.vb, а затем щелкните Просмотреть код.
- Добавьте следующий код в класс ThisAddin. Этот код переопределяет метод CreateRibbonExtensibilityObject и возвращает класс Ribbon XML в приложение Office.
Когда я добавляю код CreateRibbonExtensibilityObject()
на шаге 5 (показано ниже):
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new MyRibbon();
}
Я получаю следующую ошибку:
Cannot implicitly convert the type MyRibbon to Microsoft.Office.Core.IRibbonExtensibility. An explicit conversion exists (are you missing a cast)?
Класс, созданный Visual Studion, имеет тип RibbonBase
.
partial class CLIREMPRibbon : Microsoft.Office.Tools.Ribbon.RibbonBase {...}
Приведенное ниже приведение типов вызывает исключение:
Unable to cast object of type MyRibbon to type Microsoft.Office.Core.IRibbonExtensibility.
Как применить правильное приведение типа RibbonBase к экземпляру интерфейса IRibbonExtensibility?