WPF,什么样的控件将处理MouseLeftButtonDown事件?

时间:2015-02-16 08:49:19

标签: wpf routed-events

我有一个DataGridControl,它的单元格的DataTemplate被覆盖到TextBoxs,通过单击单元格外部但仍然在DataGrid上,我希望TextBox失去键盘焦点,以便它可以提交更改,但似乎DataGrid不会处理MouseLeftButtonDown事件,因此我必须手动将处理程序添加到Grid和处理程序中:

        e.Handled = true;
        Keyboard.Focus( sender as UIElement );

使父母小组"可关注"。

通过使用Snoop,我注意到像TextBox,Button这样的控件能够处理MosueLeftButtonDown事件,而Panels则不能,如果设置"可聚焦"财产到"真"。有谁知道这背后的原因,谢谢。

简化情况:假设网格上有TextBox和Button:

<Grid Background="AliceBlue">
    <TextBox Height="25" Margin="50" Text="abcd"/>
    <Button  Height="25" Margin="50,100,50,0"></Button>
</Grid>

当我单击TextBox时,它会获得KeyBoard焦点,当我单击Grid的空白区域时,我希望TextBox失去焦点,问题是Grid与TextBoxes和Buttons相比无法聚焦。

enter image description here

1 个答案:

答案 0 :(得分:0)