2012-10-25 33 views
0

基本上我有一個主窗口頁面和一個設置頁面,它是用戶控件。當我點擊主窗口上的設置按鈕時,主頁面中的網格將顯示用戶控制的設置頁面。如何使用UserControl返回WPF

同時,在設置頁面上有一個取消按鈕。當我點擊它時,設置頁面用戶控件將從Grid中消失,並返回它在主窗口中的顯示方式。那麼,我可以在我的用戶控制代碼中寫什麼?或者其他方式?謝謝。

我的主窗口:

<Grid Name="grid1"> 
    <TextBlock Text="Hello World" /> 
    <TextBlock Text="Welcome" /> 
    <Button Name="settingBtn" Content="Setting" Click="settingBtn_Click" /> 
</Grid> 

我的主窗口代碼CS:

private void notifyBtn_Click(object sender, RoutedEventArgs e) 
    { 

     UserControls.NotifySetting Set = new UserControls.NotifySetting(); 
     grid1.Children.Clear(); 
     grid1.Children.Add(Set); 

    } 

我的用戶頁面:

<Grid > 
    <RadioButton Name="r1" Content="Red Color Font" /> 
    <RadioButton Name="r3" Content="Blue Color Font" /> 
    <Button Name="saveBtn" Content="Save" Click="saveBtn_Click" /> 
    <Button Name="cancelBtn" Content="Cancel" Click="cancelBtn_Click" /> 
</Grid> 
+0

你的問題到底是什麼?如何隱藏設置用戶控件? – Jan

+0

我有一個網格與一些數據ABC ....當我點擊一個按鈕,網格將顯示用戶控件。當我點擊用戶控件中的取消按鈕時,網格將顯示ABC。 – 0070

+0

我會在主窗口的構造函數中創建並添加usercontrol,並將該引用保存在類變量中。按鈕然後只更改'Visibility'屬性。 – Jan

回答

2

你可以把這個取消按鈕單擊事件:

(this.Parent as Panel).Children.Remove(this) 
+0

thx,但我遇到另一個問題。當我單擊取消後,用戶控件將消失,但grid1中的原始子元素也因Grid1.Children.Clear()而消失。你有任何解決方案來找回我清除的網格孩子嗎? – 0070

+0

只需刪除usercontrol而不是清除網格。這是我發佈的路線。它採用usercontrol的父級(這是網格容器並將其轉換爲面板,面板僅僅是Grid和Stackpanel繼承的基礎容器類),然後它自行移除。 – sam1589914