Ключевые советы в WPF - PullRequest
4 голосов
/ 02 мая 2009

Office 2007 и лента представили концепцию « Key Tips ».

Короче говоря, каждая команда в Лента получает письмо, которое вы можете нажмите, чтобы активировать эту команду. ... Буквы обозначены маленькими «Подсказки», которые указывают на письмо нажмите, чтобы активировать управление. KeyTips отображаются с помощью клавиши Alt, поэтому их использование похоже на то, как меню навигация работает в винде.

(Источник: http://blogs.msdn.com/jensenh/archive/2006/04/12/574930.aspx)

Пример подсказок клавиш можно показать следующим образом. На этой диаграмме пользователь нажал клавишу ALT и ожидает дальнейшего ввода.

Пример подсказки клавиш в Word 2007 http://blogs.msdn.com/blogfiles/outlook/WindowsLiveWriter/RibbonKeyTips_8F7C/clip_image002_thumb.jpg

Есть ли в WPF примеры с открытым исходным кодом "Key Tips"?

Как бы вы реализовали что-то вроде этой функции в общем виде (т. Е. Не требуется лента)? Как бы вы реализовали это, используя шаблон MVVM (учитывая, что ICommand не поддерживает InputBindings).

Примечание. ActiPro реализовала эту функцию в Ribbon , но не выпустила исходный код.

Ответы [ 2 ]

2 голосов
/ 18 мая 2010

Просто используйте Fluent Ribbon Control Suite (это бесплатно и поддерживает все необходимые функции)

2 голосов
/ 15 июля 2009

Во-первых, вы можете проверить Предварительный просмотр ленты в WPF Toolkit от Microsoft.

Или один общий подход будет выглядеть так:

  1. Сделайте DependencyProperty в вашем элементе управления Window / top-level, с которого вы можете сработать, например IsShowingKeyTips. Поймайте ввод с клавиатуры, чтобы перевернуть это, как считаете нужным.

  2. Создайте ContentControl, который имеет два свойства зависимости, такие как 1) IsShowingKeyTip и 2) KeyTipText. Давайте назовем это KeyTipContentControl.

  3. Отредактируйте ContentControl ControlTemplate, чтобы посмотреть, как вы хотите. Сделайте его Canvas или вашим любимым контейнером макета, используйте некоторые привязки для правильного определения размера, возможно, добавьте отрицательные значения Margin.

  4. Если вы хотите проявить фантазию, наберите AttachedProperties, как KeyTip.Text, чтобы вывести их из простого элемента управления в KeyTipContentControl.

  5. В вашем XAML поместите ContentControls вокруг Controls, для которого вы хотите использовать подсказки клавиш. Установите соответствующие привязки.

На верхнем уровне вы получите нечто подобное:

<Window ... >
  <code:KeyTipContentControl 
     KeyTipText="A" 
     IsShowingKeyTip="{Binding IsShowingKeyTips}">
     <Button x:Name="MyButtonWithKeyTip" ... />
  </code:KeyTipContentControl>
</Window>

Чтобы элегантно справиться с нажатием клавиши, я сейчас не за что. : -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...