Office 2007和功能区引入了“Key Tips”的概念。
简而言之,每一个命令都在 功能区收到一封信,你可以 按以激活该命令。 ... 字母用小号表示 “KeyTips”表示给的信 按下以激活控件。快捷键提示 使用Alt键显示,所以 使用它们感觉类似菜单 导航适用于Windows。
(资料来源:http://blogs.msdn.com/jensenh/archive/2006/04/12/574930.aspx)
关键提示的示例可以显示如下。在此图中,使用已按下ALT键,正在等待进一步输入。
是否有任何WPF开源示例“关键提示”?
您将如何以通用方式实现此功能(即不需要功能区)?您将如何使用MVVM模式实现此功能(假设ICommand不支持InputBindings)。
注意:ActiPro在Ribbon的实现中实现了此功能,但他们尚未发布源代码。
答案 0 :(得分:2)
首先,您可以查看Microsoft的WPF工具包中的Ribbon Preview。
或者,一种通用的方法是这样的:
在您可以触发的窗口/顶级控件中设置DependencyProperty
,例如IsShowingKeyTips
。抓住键盘输入以在您认为合适时翻转它。
创建一个ContentControl
,它有两个依赖项属性,例如1)IsShowingKeyTip
和2)KeyTipText
。我们称之为KeyTipContentControl
。
修改ContentControl
的{{1}}以了解您的需求。将它设为ControlTemplate
或您最喜欢的布局容器,使用一些绑定来正确调整大小,可能会产生一些负Canvas
值。
如果您想要花哨,可以使Margin
像AttachedProperties
一样将它们从普通控件冒泡到KeyTip.Text
。
在您的XAML中,将KeyTipContentControl
放在您希望KeyTips开启的ContentControls
周围。根据需要设置绑定。
你最终会在顶层找到类似的东西:
Controls
以优雅的方式处理按键不是我现在正在做的事情。 : - )
答案 1 :(得分:2)
只需使用Fluent Ribbon Control Suite(免费且支持所有必需功能)