У меня есть простое приложение, которое размещает управляемый 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 не перекрашивает себя?
Извините, если это слишком расплывчато, чтобы решить проблему, я не могу поделиться большим количеством исходного кода.