2012-07-20 101 views
5

我有兩個單獨的項目,例如project1和project2。那麼我在project1中有一個window1,所以我怎麼能從project2中顯示這個window1。從其他項目打開wpf窗口

+0

他們都是Wpf項目嗎? – ethicallogics 2012-07-20 14:43:46

+0

您的項目是同一個解決方案的一部分,還是他們是獨立的可執行文件 – 2012-07-20 14:45:27

+0

是的,他們都是WPF項目,兩者都在同一個解決方案中。 – user1399377 2012-07-20 14:45:41

回答

9

你只需要添加一個項目引用到你想調用其他項目的項目。然後你可以做這樣的事情。我有兩個不同的命名空間,但這樣的事情應該工作。

namespace WpfApplication1 
{ 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
    public partial class MainWindow : Window 
    { 
     WpfApplication2.MainWindow newForm; 

     public MainWindow() 
     { 
      InitializeComponent(); 

     } 

     private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      newForm = new WpfApplication2.MainWindow(); 

      newForm.Show(); // or newForm.ShowDialog(); 
     } 
    } 
} 
+0

感謝它爲我工作。 – user1399377 2012-07-20 15:05:33

+2

當我使用wpf應用程序來啓動XNA遊戲時,這也適用於我。 – 2013-12-22 03:30:27

1

您需要做的就是將項目1引用添加到項目2項目,然後像以前那樣調用window1(在調用之前不要忘記:您需要using Project1;要調用window1,因此intellisense會發現它很容易)

+0

是的我已經將Project1引用添加到Project2,但我得到NullReferenceException object o =(Window)System.Reflection.Assembly.Load(「Project1」)。CreateInstance(「MainWindow」); 窗口s =(窗口)o; s.Show(); – user1399377 2012-07-20 14:56:26

+0

@ user1399377如果您有對項目的引用,則不需要使用System.Reflection。 – 2012-07-20 14:58:43

+0

該呼叫必須與Mark Hall顯示的一樣 – HichemSeeSharp 2012-07-20 14:59:16