WPF catch单击网格及其所有子标签,文本框等.

Xav*_*ppé 3 c# wpf

可以说我有一个xaml文件,一个窗口,为什么不呢.在这个xaml我有一个带有多个标签的网格,textBoxs,comboBoxs,list ...你看到了patern.在某一点(其中X == true)我希望能够捕获网格内的点击以及其中的所有内容.

我想仍然能够做这个点击将要做的事情,所以网格上的一个完整填充的矩形不是我正在寻找的答案.点击的动作是将X恢复为假.没什么.

是否有一种简单的方法来管理网格上的点击及其中的所有内容?

提前致谢

She*_*dan 9

您只需要使用所有控件共有的事件.对于这种情况,可能最好的一个是UIElement.PreviewMouseDown事件.试试这个:

<StackPanel UIElement.PreviewMouseDown="StackPanel_PreviewMouseDown">
    <Label Content="I'm a Label" />
    <Button Content="I'm a Button" />
    <CheckBox Content="I'm a CheckBox" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

您需要使用其中一个Preview...事件,以便在Button消耗它之前捕获它...由于这个原因,UIElement.MouseDown事件不能用于Buttons.但是,您可以使用其他Preview...方法,例如UIElement.PreviewLeftMouseButtonDown事件.