Лента Microsoft WPF - Группируйте кнопки как кнопки раскрывающегося списка

Я реализовал ленту Microsoft WPF в приложении .NET браузера WPF. Это довольно простой макет с вкладками, группами и кнопками в группах. Однако существует МНОГО групп и кнопок, и пользователям сложно использовать ленту на небольших дисплеях. Некоторые группы преобразуют кнопки в маленькие графические кнопки без текста, что не нравится пользователям. Им нужно навести курсор на каждую кнопку, чтобы увидеть ее назначение. Другие группы полностью сворачиваются и превращаются в раскрывающиеся кнопки. Этого они хотят в стандартной комплектации. Каждая группа по умолчанию должна быть представлена ​​в виде раскрывающейся кнопки, а при нажатии на нее - список элементов в виде пунктов меню.

Чтобы понять, что мне нужно, вы можете просто уменьшить размер окна, пока группы не свернутся до этого выпадающего эффекта с элементами меню.

Может кто поможет?

Кнопки привязываются к ленте динамически, как и вкладки и группы.


person Michael Smit    schedule 02.03.2011    source источник


Ответы (3)


Есть ли причина, по которой RibbonMenuButton не хватает?

    <r:RibbonMenuButton
        Label="Clicking"
        SmallImageSource=".."
        LargeImageSource="..">
            <r:RibbonMenuItem 
                Header="Click Me 1"
                ImageSource=".."/>
            <r:RibbonMenuItem 
                Header="Click Me 2"
                ImageSource=".."/>
            <r:RibbonMenuItem 
                Header="Click Me 3"
                ImageSource=".."/>
            <r:RibbonMenuItem 
                Header="Click Me 4"
                ImageSource=".."/>
    </r:RibbonMenuButton>
person Aaron McIver    schedule 02.03.2011
comment
На самом деле я не знал, что вы можете вкладывать кнопки в кнопки. Это может сработать. Попробую сегодня вечером. - person Michael Smit; 04.03.2011

Думаю, ваша проблема может быть не технической, а скорее концептуальной.

Если вы посмотрите рекомендации Microsoft по лентам, вы заметите эти ленты не обязательно лучший выбор, если у вас слишком много команд:

Команд много? Потребуется ли для использования ленты более семи основных вкладок? Придется ли пользователям постоянно менять вкладки для выполнения общих задач? Если да, то с помощью панелей инструментов (которые не требуют смены вкладок) и окон палитр (для чего может потребоваться изменение вкладок, но одновременно может быть открыто несколько) может быть более эффективным выбором.

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

Вы также можете рассмотреть возможность использования контекстных вкладок, которые будут отображаться только при определенных условиях и, следовательно, будут отображать только команды, связанные с тем, что пользователь делает в данный момент.

person madd0    schedule 02.03.2011
comment
Контекстные вкладки могут быть хорошей идеей. Система существует чуть больше года и используется в основном головным офисом (франчайзинг). Сейчас они распространяются на своих франчайзи, и многие из них работают с 14 экранами, что не подходит для этого дизайна. ХО нравится, как это выглядит, но просто нужно, чтобы группы изменились на раскрывающиеся кнопки. Если вы вручную измените размер окна браузера, вы получите этот эффект. Но они хотят этого постоянно. - person Michael Smit; 04.03.2011

Вы можете управлять тем, какие кнопки будут отображаться в RibbonBar при изменении их размера (внутренне с помощью панели). Вы можете использовать RibbonGroup.GroupSizeDefinitions и RibbonTab.GroupSizeReductionOrder, чтобы определить, как должен отображаться каждый RibbonGroup. Дополнительную информацию см. На странице Макет ленты и изменение размера в MSDN.

person Sheridan    schedule 02.07.2013