WPF的关键提示

时间:2009-05-02 12:12:17

标签: wpf

Office 2007和功能区引入了“Key Tips”的概念。

  

简而言之,每一个命令都在   功能区收到一封信,你可以   按以激活该命令。 ...   字母用小号表示   “KeyTips”表示给的信   按下以激活控件。快捷键提示   使用Alt键显示,所以   使用它们感觉类似菜单   导航适用于Windows。

     

(资料来源:http://blogs.msdn.com/jensenh/archive/2006/04/12/574930.aspx

关键提示的示例可以显示如下。在此图中,使用已按下ALT键,正在等待进一步输入。

Key Tips Example in Word 2007 http://blogs.msdn.com/blogfiles/outlook/WindowsLiveWriter/RibbonKeyTips_8F7C/clip_image002_thumb.jpg

是否有任何WPF开源示例“关键提示”?

您将如何以通用方式实现此功能(即不需要功能区)?您将如何使用MVVM模式实现此功能(假设ICommand不支持InputBindings)。

注意:ActiPro在Ribbon的实现中实现了此功能,但他们尚未发布源代码。

2 个答案:

答案 0 :(得分:2)

首先,您可以查看Microsoft的WPF工具包中的Ribbon Preview

或者,一种通用的方法是这样的:

  1. 在您可以触发的窗口/顶级控件中设置DependencyProperty,例如IsShowingKeyTips。抓住键盘输入以在您认为合适时翻转它。

  2. 创建一个ContentControl,它有两个依赖项属性,例如1)IsShowingKeyTip和2)KeyTipText。我们称之为KeyTipContentControl

  3. 修改ContentControl的{​​{1}}以了解您的需求。将它设为ControlTemplate或您最喜欢的布局容器,使用一些绑定来正确调整大小,可能会产生一些负Canvas值。

  4. 如果您想要花哨,可以使MarginAttachedProperties一样将它们从普通控件冒泡到KeyTip.Text

  5. 在您的XAML中,将KeyTipContentControl放在您希望KeyTips开启的ContentControls周围。根据需要设置绑定。

  6. 你最终会在顶层找到类似的东西:

    Controls

    以优雅的方式处理按键不是我现在正在做的事情。 : - )

答案 1 :(得分:2)

只需使用Fluent Ribbon Control Suite(免费且支持所有必需功能)