Создание пользовательского меню в .NET WinForms
Вопрос
Используя .NET 2.0 с WinForms, я хотел бы создать собственное меню с несколькими столбцами (похожее на внешний вид слова 2007, но без ленты).
Мой подход заключался в создании элемента управления и, используя закрепленную влево/вправо панель инструментов, я создал похожий внешний вид меню.Однако у этого решения есть несколько недостатков, таких как
- элемент управления можно разместить и отобразить только внутри формы;
- если форма слишком мала, некоторая область элемента управления не будет отображаться;
- элемент управления также необходимо отображать/скрывать вручную.
Таким образом, я ищу способ отобразить этот элемент управления за пределами приложения.Создание новой формы приведет к деактивации строки заголовка на дисплее, так что это тоже исключено.В качестве альтернативы, любой другой подход к созданию индивидуального меню будет очень приветствоваться.
Редактировать:Я не хочу использовать для этого какие-либо коммерческие продукты;и поскольку речь идет о простой настройке меню, это никак не связано с «исследованиями» ленты Microsoft.
Решение
Класс MenuStrip имеет свойство Renderer.Вы можете назначить свой собственный производный класс ToolStripRenderer для настройки рисования.Это изрядный объем работы.
Другие советы
- если вы не занимаетесь поставкой компонентов .net, вам следует покупать их в готовом виде.Чтобы получить такой контроль, нужно проделать большую работу. Уже есть поставщики, предоставляющие такой пользовательский интерфейс.например КомпонентОдин
- если вы пытаетесь создать этот компонент как продукт, вам следует просмотреть ссылку ниже.Судя по всему, у Microsoft есть «безвозмездная» лицензия на пользовательский интерфейс Office, чтобы защитить свои инвестиции в исследования и разработки.На данный момент вам нужно сообщить им, что вы используете что-то похожее на пользовательский интерфейс Office. Больше об этом здесь