当滑块获得焦点时,KeyDown事件无法工作(C# UWP)

3

我正在尝试在按下键盘上的向上箭头时使焦点从滑块移开。问题是,向上箭头只会增加滑块的值,而不执行KeyDown事件。请帮忙看看,如果需要,这是我的代码:

private void slider1_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        if ((e.Key == VirtualKey.Up))
        {
            customvolumebutton.Focus(FocusState.Keyboard);
            label1.Text = "focus changed";
        }
    }

如果你进行调试,会发生什么?if语句是否被执行? - Sybren
我该如何检查呢?我知道KeyDown对于所有其他按钮都有效,但是对于滑块而言,当按下向上箭头时,滑块的值只会增加。 - tadll122101
调试你的 keydown 方法? - Sybren
如果我调试,没有错误,即使应该触发KeyDown事件。我尝试将更改标签的部分放在if语句之外,但仍然没有任何反应。 - tadll122101
1个回答

3

默认情况下,向上向下键控制滑块。如果您想要自定义行为,可以在页面的构造函数中手动调用AddHandler来处理路由事件。

slider1.AddHandler(KeyDownEvent, new KeyEventHandler(slider1_KeyDown), true);

所以只需删除当前的KeyDown订阅,因为它不再需要。而你slider1_KeyDown中的内容现在应该被任何按键触发。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接