WPF не всегда перерисовывается при использовании WindowsFormsHost - PullRequest
3 голосов
/ 05 апреля 2010

У меня есть простое приложение, которое размещает управляемый DirectX Control с использованием WindowsFormsHost. Я переопределил методы рисования в Control, чтобы предотвратить мерцание:

protected override void OnPaint(PaintEventArgs e)
{
    if (this.Visible == true) { base.OnPaint(e); }
}

// Don't paint the background unless the control is not visible
protected override void OnPaintBackground(PaintEventArgs e)
{
    if (this.Visible == false) { base.OnPaintBackground(e); }
}

Существует таймер, который периодически делает недействительным Managed DirectX Control, так что он будет перерисован.

Моя проблема в том, что, когда я блокирую компьютер (WIN + L), а затем разблокирую его, содержимое WPF вокруг WindowsFormsHost иногда не полностью окрашивается. Различные его части не прорисовываются, пока я полностью не утащу окно. Есть идеи, почему WPF не перекрашивает себя?

Извините, если это слишком расплывчато, чтобы решить проблему, я не могу поделиться большим количеством исходного кода.

...