假设我有一个xaml文件,一个窗口,为什么不呢。在这个xaml中,我有一个带有多个标签的网格,textBoxs,comboBoxs,list ...你看到了patern。在某个时间点(其中X == true)我希望能够捕捉网格内的点击及其中的所有内容。
我想仍然可以做这个点击将要做的事情,所以网格上的一个完整的矩形不是我正在寻找的答案。点击的动作是将X恢复为假。没什么。
是否有一种简单的方法来管理网格上的点击及其中的所有内容?
提前致谢
答案 0 :(得分:5)
您只需要使用所有控件共有的事件。对于这种情况,可能最好的是UIElement.PreviewMouseDown
event。试试这个:
<StackPanel UIElement.PreviewMouseDown="StackPanel_PreviewMouseDown">
<Label Content="I'm a Label" />
<Button Content="I'm a Button" />
<CheckBox Content="I'm a CheckBox" />
</StackPanel>
您需要使用其中一个Preview...
事件,以便在Button
消耗它之前捕获它... UIElement.MouseDown
事件不能用于{{1因为这个原因。但是,您可以使用其他Button
方法,例如Preview...
事件。
答案 1 :(得分:2)
您能提供示例代码吗?
根据我的理解,您可以使用它,它将捕获您在网格内的所有点击。
<强>的.xaml 强>
<Grid MouseDown="Grid_MouseDown">
<Label MouseDown="Grid_MouseDown" />
<Button MouseDown="Grid_MouseDown"/>
<Button MouseDown="Grid_MouseDown"/>
</Grid>
<强> .xaml.cs 强>
private Grid_MouseDown(object sender,MouseButtonEventArgs e)
{
if(X==true)
{
//doSomething
}
else
{
//do SomethingElse
}
}
编辑:这个怎么样?