gpt4 book ai didi

wpf - InputBinding 而不是 PreviewKeyDown

转载 作者:行者123 更新时间:2023-12-04 20:34:11 27 4
gpt4 key购买 nike

在我的代码的 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 事件是由子元素处理的。

是否可以在 InputBindings 的 XAML 中设置 previewkeydown?如何做到这一点?

最佳答案

您是否尝试过使用 Key 属性而不是 Gesture?像这样:

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

关于wpf - InputBinding 而不是 PreviewKeyDown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6173092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com