2016-11-24 84 views
-2

我試圖同時打開一個新的關閉窗口,但this.close()不被系統識別this.close()不能被識別爲法

private void Insert_Data_Click(object sender, RoutedEventArgs e) 
{ 
      MainWindow DataWindow = new MainWindow(); 
      DataWindow.Show(); 
      this.Close(); 
     } 

這是類聲明

public partial class Home_autismo : MetroWindow 

和包含的庫

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Shapes; 
using MahApps.Metro.Controls; 
using MahApps.Metro.Controls.Dialogs; 

任何想法,爲什麼this.Close()不承認?

+0

你試過'Application.Exit()'? – RandomStranger

+0

你能詳細說明一下嗎?它在運行時不起作用,甚至不能編譯?我的應用程序中有完全相同的代碼,這很簡單。 'Application.Exit()'在嘗試切換窗口時退出不方便的應用程序。 – SilentStorm

+0

還要確保你的xaml文件不是一個用戶控件或頁面,而是以'' SilentStorm

回答

0

嘗試添加一個關閉事件,當它的收盤它會打開你的數據窗口 添加在您的XAML窗口的關閉事件

<Window x:Class="ParamCreator.PasswordWindow"  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml 
Closed="Home_autismo_Closing"> 

然後在你的主類,做this.Close();應該識別它然後

public partial class Home_autismo : MetroWindow 
    { 

private void Home_autismo_Closing(object sender, EventArgs e) 
    { 
     MainWindow DataWindow = new MainWindow(); 
     DataWindow.Show(); 
    } 
    // Logic 
    If(...) 
    { 
    this.Close(); 
    } 
    } 
+0

之類的東西開始解釋投票? – JohnChris

+0

Close()應該包含在MetroWindow類中。它不依賴於xaml代碼中的臨時事件。我可能錯過了一些東西。 –

+0

這很好......但是你不在你的主類中做close(),你在一個xaml事件處理程序中做...看看我編輯的答案 – JohnChris