InputBinding代替PreviewKeyDown

在我的代码的的MainView,我有这个事件捉KEYDOWN:

#region Constructor PreviewKeyDown += SoftKeyMainPreviewKeyDown; #endregion private void SoftKeyMainPreviewKeyDown(object sender, KeyEventArgs e) { var focusedElement = Keyboard.FocusedElement; switch (e.Key) { case Key.Up: DoSomething(); break; ..... } }

现在,我想移动到这一点在XAML InputBindings。

我第一次尝试:

<UserControl.InputBindings> <KeyBinding Gesture="Up" Command="{Binding ElementName=_MaschinenView, Path=UpCommand}" /> .... </UserControl.InputBindings>

代码隐藏:

public ICommand UpCommand { get; set; } UpCommand = new SimpleCommand { ExecuteDelegate = delegate { MoveFocusInDirection(Keyboard.FocusedElement, new TraversalRequest(FocusNavigationDirection.Up)); } };

有了这个什么也没有发生。 最有可能在KeyDown,事件是由一个子元素处理。

它是更多钞票来设置previewkeydown在XAML中InputBindings? 而如何才能实现这一目标?

--------------解决方案-------------

您可以选择使用,而不是动作的关键属性试过吗? 喜欢这个:

<UserControl.InputBindings>
<KeyBinding Key="Up" Command="{Binding ElementName=_MaschinenView, Path=UpCommand}" />
....
</UserControl.InputBindings>

分类:WPF 时间:2015-03-15 人气:5
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.412 (s). 10 q(s)