Как добавить элемент ленточного интерфейса в мое приложение?
Я делаю приложение winform и думаю, что оно очень выиграет от элемента Ribbon UI. Можно ли поставить ленту на собственное приложение? Если так, то как?
Я надеюсь не полагаться на сторонние инструменты, такие как Delphi, потому что тогда мое приложение будет быстро выглядеть устаревшим в будущих (или, возможно, даже текущих) версиях Windows. Я знаю это, потому что я смотрел на Создание приложений в стиле ленты и заметил, что он по-прежнему выглядит как Office 2007, хотя его сравнивают с WordPad в Windows 7, который использует визуальный стиль Office 2010, предположительно на той же машине. Даже сейчас приложения MS Windows 8 используют стили Office 2013 в Explorer, WordPad, Paint и т. Д., И я не вижу никаких свидетельств того, что Delphi все еще поддерживает этот визуальный стиль или что он адаптируется к старым платформам, таким как Vista, когда необходимо. Извините, если это слишком придирчиво, но я предпочитаю дать своим пользователям опыт, к которому они привыкли, а не мой или будущий.
2 ответа
Если вы намереваетесь предоставить своим пользователям "самый естественный вид", вам обязательно следует придерживаться Windows Ribbon Framework. Это связано с тем, что Microsoft использует этот API также и для своих "стандартных" приложений Windows Ribbon (MS Word, MS Paint). Преимущества этой "нативной" реализации заключаются в том, что этот список не претендует на полноту:
Look'n'feel ориентируется на операционную систему. Это означает, что ваше приложение ленты будет выглядеть точно так же, как MS Paint и MS Wordpad, например, в Windows 7 и 8. Таким образом, лента вашего приложения также получит прямую выгоду от улучшений / исправлений, которые Microsoft предоставляет Windows Ribbon Framework в будущих обновлениях Windows и - конечно же - версиях Windows).
Никакого дополнительного программного обеспечения не требуется (за исключением Windows Vista / Server 2008, для которой требуется обновление платформы для поддержки Windows Ribbon Framework).
COM API, поэтому графический интерфейс ленты может быть интегрирован в приложение любого языка программирования в Windows, которое поддерживает программирование COM (.NET, C++, Delphi и т. Д.).
Существует несколько других реализаций ленты, которые предоставляются корпорацией Майкрософт (например, сторонние, ссылаясь на ваше описание), но все они были реализованы для определенного программного обеспечения (ленты Office) или платформы (ленты WPF) или просто устарели (ленты MFC)., Ленты Office не подходят для вас, поскольку они, конечно, ограничены приложениями Microsoft Office. Ленты MFC также основаны на COM, поэтому теоретически могут их использовать. Но, как уже было сказано, они довольно устарели, поэтому ваше приложение будет выглядеть как потомок Office 2007. WPF, безусловно, вариант, так как:
Компоненты довольно мощные, и компоненты WPF активно обновляются / поддерживаются.
С точки зрения разработчиков, их еще проще интегрировать в приложение, так как имеется много документации и компоненты хорошо поддерживаются общими IDE, такими как Visual Studio.
С установленной платформой.NET ленты могут даже использоваться в "устаревших" операционных системах, таких как Windows XP. Если вам все еще нужно поддерживать Windows XP / 2003, это то, что вы должны иметь в виду.
Но, как уже было сказано, это не те компоненты, которые Microsoft использует для своих "ленточных" приложений "по умолчанию", поэтому они всегда выглядят немного иначе, чем по сравнению с Windows Ribbon Framwork.
Поэтому, если вы решите придерживаться Windows Ribbon Framework, теперь вы можете решить, будете ли вы "хардкорными" и реализовывать необходимые интерфейсы самостоятельно или можете использовать существующую оболочку, такую как " Лента Windows для WinForms" или " Windows Ribbon Framework для Delphi". И, пожалуйста, назовите Delphi "сторонним инструментом". Я предполагаю, что это потому, что вы видели компоненты ленты, которые предоставляются Embarcadero (издатель Delphi). Это верно, что они сильно устарели, выглядят как дерьмо и не более активно поддерживаются (и глючат, и...). Так что не используйте их. Вместо этого используйте Windows Ribbon Framework напрямую. Оболочка, о которой я упоминал выше, делает это, она просто значительно упрощает процесс разработки, поскольку она реализует все необходимые интерфейсы, поставляется с дизайнером и некоторыми примерами приложений.
Если вы хотите использовать другой язык программирования, это тоже не проблема. Причина, по которой я впервые упомянул Delphi, заключается в том, что вы написали об этом в своем первоначальном посте, а обертка довольно хороша. Как уже говорилось, вы можете использовать любое другое программирование, которое также поддерживает программирование COM API.
Я надеюсь, что это немного прояснило ситуацию. [И слава тем, кто дошел до здесь!;)]
PS: я не упомянул о реальных сторонних реализациях, таких как DevExpress или TMS, так как вы все равно хотели придерживаться реализаций Microsoft.
Я не уверен, как вы определяете "сторонний инструмент", но этот проект кода использует библиотеку на codeplex, которая довольно хорошо поддерживает стиль Office 10 и Office 13.
Вот несколько скриншотов, которые вы можете попробовать (копия с официального сайта Codeplex):
2007
2010
2013