嗨,我遇到了与此问题类似的问题。
对我来说不同的是,我在 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,我的 WPF-ElementHost 在 WinForms-Usercontrol 中的内容只有在有 mouseover 事件时才会被绘制。
简短描述:用户控件“打开”但它是透明的。在我用鼠标移过它之后,例如 ComboBoxes 被绘制出来。
一旦我注释掉 CreateParams,一切正常(使用 WPF-ElementHost)。是否可以为 WPFElementHost 停用/使用不同的 CreateParams?