《WPF編程寶典——使用C# 2008和.NET 3.5(第2版)》第25章與Windows窗體的互操作,本章將介紹用於集成Windows窗體和WPF內容的不同策略。還將分析如何在應用程序中使用兩種類型的窗口,並且還將研究更加精彩的在一個窗口中混合來自兩個平台內容的技巧。但是在深入分析WPF和Windows窗體之間的互操作之前,先后退一步,分析應當(或不應當)使用WPF互操作功能的原因是值得的。本節為大家介紹顯示模態窗口和窗體。
25.2.3 顯示模態窗口和窗體
從WPF應用程序中顯示模態窗體很簡單。可以使用與在Windows窗體項目中相同的代碼。例如,如果有一個名稱為Form1的窗體類,可以使用下面的代碼以模態的方式顯示這個窗口:
- Form1 frm = new Form1();
 - if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 - {
 - MessageBox.Show("You clicked OK in a Windows Forms form.");
 - }
 
您可能已注意到,Form.ShowDialog( )方法的工作方式和WPF的Windows.ShowDialog( )方法(在第8章中介紹過該方法)的工作方式稍微不同。Form.ShowDialog( )方法返回DialogResult枚舉,而Windows.ShowDialog( )方法返回true、false或null。
相反的技巧-- 從窗體中顯示一個WPF窗口-- 同樣很容易。同樣,可以簡單地與Windows類的公有接口進行交互,其余的問題由WPF負責解決:
- Window1 win = new Window1();
 - if (win.ShowDialog() == true)
 - {
 - MessageBox.Show("You clicked OK in a WPF window.");
 - }
 
