UWP 中的 TextBox 未触发 KeyDown 事件

ven*_*n r 4 textbox win-universal-app uwp

当我按下 Enter 键时,如果其属性设置为 true KeyDownTextBox则不会触发该事件AcceptsReturn。我怎么能确定何时回车键被按下了TextBoxAcceptsReturn设置为true

小智 6

如果您希望完全禁用新行(如@ruffin 想要的那样),请通过隐藏代码订阅 PreviewKeyDown 事件并将其设置e.Handledtrue.

    public MyControl()
    {
        InitializeComponent();

        var keyeventHandler = new KeyEventHandler(TextBox_KeyDown);
        uiText.AddHandler(PreviewKeyDownEvent, keyeventHandler, handledEventsToo: true);
    }

    private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
    {
        if (e.Key == Windows.System.VirtualKey.Enter)
            e.Handled = true;
    }
Run Code Online (Sandbox Code Playgroud)


ven*_*n r 5

我尝试了下面的代码,它对我有用,

var textBox = new TextBox();
KeyEventHandler keyeventHandler = new KeyEventHandler(textBox_KeyDown);

textBox.AddHandler(TextBox.KeyDownEvent, keyeventHandler, true);

private void textBox_KeyDown(object sender, KeyEventArgs e)
{
*** now Enter Key gets fired eventhough when i set AcceptsReturn as True ***
}
Run Code Online (Sandbox Code Playgroud)