2016-10-31 156 views
0

我需要顯示wpf窗口而不更改其他進程的活動窗口。我正在使用帶SW_ShowNoActivate(4)的win32api ShowWindow來顯示一個窗口。但是,窗口的內容不會呈現。我試圖在ShowWindow之後調用window.UpdateLayout()和window.InvalidateVisual(),但沒有運氣。 我該如何實現它?使用win32api顯示wpf窗口ShowWindow ShowNoActivate不顯示內容

下面是一個示例解決方案,顯示我的問題(VS2015)here

預期:標籤應顯示(顯示「測試」)

實際:顯示空窗

+2

[源代碼](https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/Windows/Interop/HwndTarget.cs,977)談到一個milcore錯誤解決方法,這很可能是相關。這些黑客往往只有在陽光燦爛的時候才能工作。正如評論中所建議的,您可以通過不需要分層窗口並確保窗口不被最小化來避免這種情況。 –

+0

@HansPassant,你能指定行號嗎?是的,你對這個解決方法是正確的,但我不知道任何其他方式來顯示窗口沒有激活 – aderesh

+0

@HansPassant,我想我已經找到相關的評論在981行,謝謝。 – aderesh

回答

0

一個解決方案,我發現是舉辦Windows.Forms.Form內WPF控件。我試圖用ShowNoActive選項ShowWindow,它確實呈現wpf正確。