こんにちは私はこの質問と同様の問題を経験しています。
私にとっての違いは、WinForms-MainFormで「CreateParams-Method」を使用してダブルバッファリングを強制していることです。このためのコードは次のとおりです(たとえば、DataGridViewが間違って描画します):
protected override CreateParams CreateParams
{
get
{
// Activate double buffering at the form level. All child controls will be double buffered as well.
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // WS_EX_COMPOSITED
return cp;
}
}
私の問題は、このCreateParamsがアクティブ化されている限り、WinForms-UsercontrolのWPF-ElementHostのコンテンツは、マウスオーバーイベントが発生した場合にのみ描画されることです。
簡単な説明:UserControlは「開きます」が、透過的です。マウスで移動すると、たとえばComboBoxが描画されます。
CreateParamsをコメントアウトするとすぐに、すべてが正常に機能します(WPF-ElementHostを使用)。WPFElementHostに対して異なるCreateParamを非アクティブ化/使用することは可能ですか?