2011-11-17 12 views
1

我有一個WPF應用程序,我正在努力哪裏有一個按鈕被部分不透明的矩形覆蓋遮擋。該按鈕仍然可見,但無法接收任何事件,因爲它們都被位於其上方的矩形捕捉到。WPF - 從不在頂端的控件捕獲事件

是否有任何方法設置傳遞,以便下面的下一個可視項目接收事件?如果沒有,可以在這種情況下使用其他解決方法嗎?

+0

獲得任何代碼或可見? –

回答

2

在不透明疊加層上設置IsHitTestVisible =「false」。

0

你需要設置IsHitTestVisible =「False」來控制你的按鈕。

這個例子表明,一個按鈕被邊框覆蓋,但是由於因爲IsHitTestVisible =「假」邊界條件的邊界沒有得到任何事件:

<Grid Background="Yellow"> 
    <Button Click="Button_Click" Width="100" Height="25"/> 
    <Border Background="Cyan" Opacity="0.4" Width="200" Height="200" IsHitTestVisible="False" /> 
</Grid> 

C#代碼,

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     MessageBox.Show("iiiiiii"); 
    } 
0

您可以添加自己的事件的矩形事件(或矩形它自身的單擊事件),檢查那裏是否與在按鍵區

Rectangle.Click += your_click_event; 
private void your_click_event(object sender, RoutedEventArgs e) 
{ 
//check if it's coordinates are within the underlining button. 
//fire button click event 

} 

但它會更以無限便捷設置

IsHitTestVisible="False" 

像其他職位提到。 UIElement.IsHitTestVisible Property