我最近在安裝.Net 4.5.2的Windows 7 32位操作系統上遇到了一個問題。我有一個應用程序是Winforms並打開一個模式WPF窗口。但是,因爲我們安裝了.Net Framework 4.5.2,所以這些窗口無法正常打開,一旦窗口調用.ShowDialog()需要大約15-20秒(鼠標轉向指針幾秒鐘,winforms窗口變得無響應),然後我們會收到以下異常:從WinForms應用程序(.Net 4.5.2/Win 7/32 Bit)打開WPF窗口
System.ComponentModel.Win32Exception(0x80004005的):沒有足夠配額可用來處理該命令
奇怪的是,一旦這種異常被拋出,我選擇「繼續」,下次我嘗試打開窗口時,它會立即打開並且不會拋出異常。
以下是我用來打開窗口的簡化版本。 (當我運行該代碼時,應用程序不會拋出異常,但它確實掛了15-20秒)
private void OpenWpfWindow(object sender, EventArgs e)
{
WPFWindow testWindow = new WPFWindow();
testWindow.Visibility = System.Windows.Visibility.Visible;
testWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;
System.Windows.Interop.WindowInteropHelper helper = new System.Windows.Interop.WindowInteropHelper(testWindow);
helper.Owner = System.Windows.Forms.Application.OpenForms[0].Handle;
testWindow.ShowDialog();
}
我們沒有遇到此問題與Windows 7,並與安裝了.NET 4.5
會出現這種情況,如果你調用Show(),而不是ShowDialog的()? – 2015-02-11 22:11:17
我有Windows 8的64位.NET 4.5.2,VS2013更新4,該代碼運行良好。我將Winforms應用程序設置爲x86,它仍然工作。具體來說:我創建了一個新的Winforms應用程序,新的WPF應用程序,將Winforms的引用添加到WPF應用程序+ PresentationBase等等。新建按鈕,單擊事件指向您的OpenWpfWindow函數。運行應用程序,單擊按鈕,出現WPF窗口。花了大約5秒鐘纔出現。 – 2015-02-11 22:23:01
在MSDN論壇上有一連串帖子似乎暗示顯示窗口可能會填充消息隊列。從以下鏈接開始:https://social.msdn.microsoft.com/Forums/vstudio/en-US/6e94283a-76be-42b3-98e6-a8e18c4e43de/invisible-wpf-dialog-filling-up-windows- message-queue?forum = wpf – 2015-02-11 22:26:08