2014-01-21 60 views
1
private void myChildWindow_MouseLeave(object sender, MouseEventArgs e) 
    { 
     this.close(); 
    } 

想要關閉子窗口,當鼠標離開窗口時,銀光燈。 enter image description here每當鼠標離開銀光燈時,關閉子窗口

我能夠顯示子窗口,當鼠標懸停在父窗口超鏈接,但我不能關閉子窗口,當鼠標leave.Above是我寫的代碼片段。

+0

父窗口嘗試執行休假(事件處理程序) – Sadiq

回答

0

的ChildWindow控制具有疊加填補的整個可用面積拉伸的Silverlight應用程序。因此,在鼠標離開疊加層之前,子窗口上的鼠標離開事件不會觸發。您需要將鼠標離開事件放置在子窗口內容的根佈局容器上。這裏有一個例子:

private void ShowButton_Click(object sender, RoutedEventArgs e) 
    { 
     ChildWindow cw = new ChildWindow(); 
     cw.Width = 300; 
     cw.Height = 300; 
     cw.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch; 
     cw.VerticalContentAlignment = System.Windows.VerticalAlignment.Stretch; 
     Grid g = new Grid(); 
     g.Background = new SolidColorBrush(Colors.Gray); 
     g.Children.Add(new TextBlock() { Text = "Child window content." }); 
     g.MouseLeave += ChildWindowContent_MouseLeave; 
     cw.Content = g; 
     cw.Show(); 
    } 

    private void ChildWindowContent_MouseLeave(object sender, MouseEventArgs e) 
    { 
     ChildWindow cw = ((Grid)sender).Parent as ChildWindow; 
     cw.Close(); 
    } 

在ChildWindow控制更多信息可以在這裏找到:http://msdn.microsoft.com/en-us/library/system.windows.controls.childwindow(v=vs.95).aspx

+0

真的很適合我... !!!謝謝 –

0

你將不得不調用下面的事件處理程序在你的父窗口:

private void ParentWindow_MouseLeave(object sender, EventArgs e) 
    { 
     myChildWindow.Close(); 
    } 

希望這有助於..

+0

家長給孩子,不是孩子parent.you是在父窗口中寫入子窗口名稱怎麼可能? –

+0

如果您有:class ChildWindow:ParentWindow(意味着從父項繼承),那麼當然這是不可能的。我認爲你的ParentWindow包含'myChildWindow'作爲合成(通過合成)對象。你確定你需要從你的父窗口繼承嗎? (或者可能是組成對我來說似乎是一個更好的選擇,雖然!!)。 – Sadiq

相關問題