我一直在试图让一个简单的ContentDialog
用TextBox
关闭当用户点击Enter,同时仍然在TextBox
.可悲的是TextBox
,即使ContentDialog响应,它甚至没有a也无法工作Esc.
我希望有一种方法可以在KeyDown
Handler中设置一个Result TextBox
,但是看起来ContentDialog
缺少这个?!
您可以Hide()
在TextBox
KeyDown
处理程序中使用方法关闭ContentDialog ,简单示例:
ContentDialog c = new ContentDialog(); var tb = new TextBox(); tb.KeyDown += (sender, args) => { if (args.Key == VirtualKey.Enter) { c.Hide(); } }; c.Content = tb; c.ShowAsync();
编辑:
但是当你想要关闭对话框时,它似乎更复杂TextBox
.您必须订阅全球Window.Current.CoreWindow.KeyDown
活动:
ContentDialog c = new ContentDialog(); Window.Current.CoreWindow.KeyDown += (sender, args) => { if (args.VirtualKey == VirtualKey.Enter) { c.Hide(); } }; c.ShowAsync();