使用指定的KeyBinding按下Alt时显示下划线符号

时间:2011-06-23 14:30:56

标签: wpf

我在窗口内有CommandBinding和KeyBindings。按下Alt修饰符激活命令。是否可以使用此绑定显示下划线符号?

ps我不想在文本中使用下划线符号,请参阅此处WPF hot key firing without modifier

1 个答案:

答案 0 :(得分:1)

您可以简单地将商品的内容以下划线开头;按下Alt时,下划线将变为可见。

<Button Height="100" Width="200" Content="_MyButton"/>

如果关注的是在未按下Alt键修饰符的情况下触发Command;您可以按Atanas所述修改此行为。

        public Window1()
        {
            InitializeComponent();

            EventManager.RegisterClassHandler(typeof(UIElement), AccessKeyManager.AccessKeyPressedEvent, new AccessKeyPressedEventHandler(OnAccessKeyPressed));
        }

        private static void OnAccessKeyPressed(object sender, AccessKeyPressedEventArgs e)
        {
            if (!e.Handled && e.Scope == null && (e.Target == null))
            {
                //if alt key is not in use handle event to prevent behavior without alt key
                if ((Keyboard.Modifiers & ModifierKeys.Alt) != ModifierKeys.Alt)
                {
                    e.Target = null;
                    e.Handled = true;
                }
            }
        }

这样可以防止Command在未按下Alt修饰键时触发。