可以說我有一個xaml文件,一個窗口,爲什麼不。在這個xaml我有一個網格與多個標籤,文本框,組合框,列表...你看到的模式。在某個點(其中X == true)我希望能夠捕獲在網格及其中的所有內容中單擊一次。WPF捕獲點擊一個網格和他所有的兒童標籤,文本框等
我希望能夠繼續做點擊操作,因此在網格中填滿的Rect不是我正在尋找的答案。點擊的行爲是將X置回假。沒什麼。
是否有一種簡單的方法來管理網格上的點擊和其中的一切?
在此先感謝
可以說我有一個xaml文件,一個窗口,爲什麼不。在這個xaml我有一個網格與多個標籤,文本框,組合框,列表...你看到的模式。在某個點(其中X == true)我希望能夠捕獲在網格及其中的所有內容中單擊一次。WPF捕獲點擊一個網格和他所有的兒童標籤,文本框等
我希望能夠繼續做點擊操作,因此在網格中填滿的Rect不是我正在尋找的答案。點擊的行爲是將X置回假。沒什麼。
是否有一種簡單的方法來管理網格上的點擊和其中的一切?
在此先感謝
您只需要使用所有控件通用的事件。這種情況下最好的一種可能是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
事件不會與Button
的工作。但是,例如,您可以使用更多的Preview...
方法,例如UIElement.PreviewLeftMouseButtonDown
事件。
你可以給你的示例代碼?
從我的理解,你可以使用這個,它會捕獲你所有的點擊內部網格。
的.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
}
}
編輯:這個怎麼樣?
它確實捕獲網格內的所有點擊,但不包含標籤,按鈕等的點擊,這些不能滿足我的需求。 –
只需添加一個背景:'
這是完美的。甚至是指令性的!你真了不起。 :d –