2012-01-28 70 views
0

在我的應用程序(WPF)我有這個窗口:如何關閉隱藏窗口(WPF應用程序)?

public partial class Window1 : Window並在XAML x:Class="WpfApplication1.Window1"

現在,當我切換到從主到窗口1和背部,我我們Visibility.Hidden和可見性。可以隱藏它們並讓它們再次顯示給用戶。

我現在要做的是在主窗口中製作一個測試按鈕,即:Close Window1。 這個窗口是隱藏的,但我真的想在後臺關閉它。 起初我雖然只是使用Window.Close();但這似乎並沒有伎倆。

那麼,我應該如何以正確的方式做到這一點? 非常感謝您提前。

編輯1 - 使問題更加清晰

要在我的主窗口中打開的窗口1,我用這部分

Window1 W1 = null; // Initialise Field. 
    public void CalcTabel_Click(object sender, RoutedEventArgs e) 
    { 
    if (W1 == null) 
    { 
    W1 = new Window1(); 
    W1.Hoofdmenu = this; 
    W1.checkLang(); 
    W1.Show(); 
    } 
    else 
    { 
    W1.checkLang(); 
    W1.Visibility = Visibility.Visible; 
    } 
    this.Visibility = Visibility.Hidden; 
    } 

在窗口1有一個返回按鈕,即有這個代碼在它裏面(其中「Hoofdmenu」是我們的主窗口):

Hoofdmenu.updateStatistics(); 
Hoofdmenu.Visibility = Visibility.Visible; 
this.Visibility = Visibility.Hidden; 

但是再次,這次當站在主窗口(所以窗口1隱藏)我想關閉窗口1,但使用W1.Close()似乎並沒有工作。所以我正在尋找一種方法來關閉那個窗口1,而不是改變它的知名度。

EDIT 2 - 解決方案

因此,使用W1.Close();沒有工作,雖然小的變化this.W1.Close();事實上的確:)工作

+0

你爲什麼要隱藏窗戶不關閉?你能發表更多的示例代碼來澄清你在做什麼嗎?關閉時所做的任何事情都會打破關閉信號? – Beachwalker 2012-01-28 13:34:37

+0

在window1中,點擊了一些按鈕,改變了它的外觀。我可以確定這個窗口並未真正關閉,因爲否則它們將被重置爲默認值,而這種情況並未發生。我會看看我是否可以編輯上面的一些更使它更清晰。 – Dante1986 2012-01-28 13:39:24

+0

你可以把W1。在Try Catch塊中關閉()併發布異常? – Paparazzi 2012-01-28 13:56:22

回答

1

可以在窗口和intialize創建窗體2的對象其可見性爲虛假。

在按一下按鈕就可以simpliy說

public partial class MainWindow : Window 
    { 
    private Window1 window2; 

    public MainWindow() 
    { 
     InitializeComponent(); 
     this.window2 = new Window1(); 

     this.window2.Show(); 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     this.window2.Visibility = System.Windows.Visibility.Hidden; 
    } 
    } 

,使其閱讀你的代碼後,再次

+0

this.window2.Close();也適用,如果你想關閉它 – Mohit 2012-01-28 13:45:43

+0

哦,你已經做好了,很酷 – Mohit 2012-01-28 13:53:27

+0

編輯你的文章,並清除來評論這裏爲未來的可讀性:) – Dante1986 2012-01-28 13:54:30

0

可見,那是不可能的,你想要的方式。 window1實例是本地對象。所以如果採用這種方法,你無法實現它。 最好的辦法是在window1上用close.key() 關閉按鈕,或者在主窗口中創建一個全局實例,然後檢查是否爲空,然後關閉它。

相關問題