我有一个
WPF窗口,它作为模态对话框打开.
在对话框中,我有好的&使用IsDefault& amp;取消按钮IsCancel属性分别为它们设置为True.这两个按钮都有Click事件处理程序,可以关闭对话框.
这是相关的XAML:
Height="25" Margin="10,10,10,10" Width="75" Name="btnOK" TabIndex="1600" IsDefault="True" Click="btnOK_Click"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center" />
Height="25" Margin="10,10,10,10" Width="75" Name="btnCancel" TabIndex="1700" IsCancel="True"
VerticalContentAlignment="Center" HorizontalContentAlignment="Center" Click="btnCancel_Click" />
这是后面的代码:
private void btnOK_Click(object sender, RoutedEventArgs e)
{
// My some business logic is here
this.Close();
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
当我按下键盘上的Esc按钮时(即使焦点不在“取消”按钮上),对话框也会按预期关闭.但是,当我按下确定按钮时焦点不按Enter键时,没有任何反应.
我在对话框上有一个DataGrid.我想在数据网格中选择任何行并按Enter键时关闭对话框.
如何让这件事发生?
一些附加信息:对话框中有一个文本框.它有Keyboard.PreviewKeyDown事件的事件处理程序.当我在文本框中并按Enter键时,不应关闭该对话框.但是我可以删除这个处理程序.重要的是要解决上面的问题.
private void tbxSearchString_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
this.Search(); // Does some searching
}
}