2012-08-03 180 views
1

我想使程序名稱青色Pembuat SOAL(青色問題製造者)我在啓動事件添加到該代碼:爲什麼WPF窗口沒有打開

using System; 
using System.Windows; 

namespace Cyan_Pembuat_Soal { 
    /// <summary> 
    /// Interaction logic for App.xaml 
    /// </summary> 
    public partial class App : Application { 
     private void Application_Startup(object sender, StartupEventArgs e){ 
      if (FindPlace(e.Args) != null) { 
       Cyan_Pembuat_Soal.MainWindow a = new Cyan_Pembuat_Soal.MainWindow(); 
       a.Activate(); 
      } else { 
       Cyan_Pembuat_Soal.MainWindow a = new Cyan_Pembuat_Soal.MainWindow(); 
       a.Activate(); 
       a.Closed += delegate(object senders, EventArgs es) {this.Shutdown();}; 
      } 
     } 
     private static string FindPlace(string[] a) { 
      if (a.Length == 0) { 
       return null; 
      } 
      int b = 0; 
      System.Uri c; 
      for (b = 0; b < a.Length; b++) { 
       if(Uri.TryCreate(a[b], UriKind.RelativeOrAbsolute, out c)){ 
        break; 
       } 
      } 
      c = null; 
      return a[b]; 
     } 
    } 
} 

但是,代碼沒有正常工作。這個計劃有什麼問題?

+1

使用'a.Show()''不a.Activate()' – Snowbear 2012-08-03 08:14:00

回答

0

使用a.Show()代替a.Activate(); 並確保您的處理程序中的App.xaml註冊:

<Application 
    ... 
    Startup="Application_Startup"> 
+0

如果他使用'Show()'和'Startup','Window'將顯示兩次。在這種情況下,他應該使用'Show'或'ShowDialog'。 – eandersson 2012-08-03 12:26:34

+0

沒有StartupUri和Startup有區別:) – JleruOHeP 2012-08-03 12:35:17

+0

啊,把這兩個搞糊塗了。我只是重寫'保護覆蓋無效OnStartup(StartupEventArgs e)'所以永遠不需要添加額外的XAML代碼,以確保它拿起這樣的事情。 http://stackoverflow.com/questions/10166531/how-do-i-edit-the-mainwindow-constructor-of-a-wpf-application/10166597#10166597 – eandersson 2012-08-03 13:04:20