2011-10-29 64 views
1

如果用戶單擊疊加層,我希望ChildWindow自動關閉並將用戶返回到主屏幕。Silverlight:單擊疊加層時關閉ChildWindow

是否有一個屬性來控制它?如果沒有,是否有辦法將點擊處理程序附加到覆蓋層?

+2

可能的重複:http://stackoverflow.com/questions/5728678/close-childwindows-in-silverlight-with-a-click-outside-of-it – Ekk

回答

4

原來,您可以在創建後立即獲取對疊加層的引用。之後,附加事件處理程序是一件簡單的事情。

private void Overlay_MouseButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     this.Close(); 
    } 

    public override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 
     var overlay = (Grid)GetTemplateChild("Overlay"); 
     overlay.MouseLeftButtonDown += Overlay_MouseButtonDown; 
     overlay.MouseRightButtonDown += Overlay_MouseButtonDown; 
    } 
相關問題