2016-10-31 8 views
0

他のプロセスのアクティブなウィンドウを変更せずにwpfウィンドウを表示する必要があります。私はウィンドウを表示するSW_ShowNoActivate(4)とwin32api ShowWindowを使用しています。ただし、ウィンドウの内容はレンダリングされません。私はShowWindowの後にwindow.UpdateLayout()とwindow.InvalidateVisual()を呼び出そうとしましたが、運がありません。 どうすれば実現できますか?win32apiを使用して表示されたWpfウィンドウShowWindow ShowNoActivateがコンテンツを表示しない

ここに私の問題(VS2015)hereを示すサンプルソリューションがあります。

予想:ラベル(番組「テスト」)が表示されなければならない

実際:空のウィンドウは、私が見つけた

+2

milcoreバグの回避策については、[source code](https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/Windows/Interop/HwndTarget.cs,977)関連性があります。この種のハックは、太陽が輝いているときにのみ働く傾向があります。コメントに示唆されているように、レイヤーウィンドウを必要とせず、ウィンドウが最小化されないようにすることで、これを回避できます。 –

+0

@HansPassant、回線番号を指定してください。ええ、あなたはこの回避策については正しいですが、私はアクティブ化なしでウィンドウを表示する他の方法を知りません。 – aderesh

+0

@HansPassant、981行目で関連するコメントを見つけたと思います。 – aderesh

答えて

0

一つの解決策はのWindows.Forms.Formの内側にWPFコントロールをホストすることで示されています。 ShowNoActiveオプションでShowWindowを試してみましたが、wpfを適切にレンダリングします。

関連する問題