当另一个应用程序 运行 全屏时,WPF 应用程序无法正确绘制

WPF application doesn't draw correctly when another application is running in fullscreen

我的应用程序比下面的要复杂一些,但我已将问题提炼为一个简单的案例。

我有一个绑定到对象 属性 的文本框。从应用程序内部工作时,绑定工作正常。

我的应用程序在另一个线程中运行一个 TCP 服务器,该线程接收来自 mod 我为游戏创建的消息(该游戏是《以撒的结合》,如果有帮助的话)。当用户在游戏中按下某个键时,mod 会向我的应用程序发送消息。当服务器收到一条消息时,它会通过应用程序的调度程序调用绑定 属性 中的更改,如下所示:

App.Current.Dispatcher.Invoke(delegate
{
    TestModel.Number = sum;
});

这在游戏窗口化时工作正常;文本框根据消息更新并正确绘制。但是,当游戏处于全屏模式时,并且我在发送消息后按 alt-tab 键返回到我的应用程序,文本框文本直到我将鼠标悬停在上方时才会更新。我很确定文本框的文本值已正确更新,但它只是在游戏全屏时不会重绘,鼠标悬停会触发重绘。

奇怪的是,在启动我的应用程序的前 10 秒左右,即使游戏全屏显示,文本框也会正确更新。之后问题就开始了。

如果有任何见解或解决方案,我将不胜感激。

可能是驱动程序问题。尝试在启动时禁用硬件加速:

RenderOptions.ProcessRenderMode = RenderMode.SoftwareOnly;

性能会受到影响,但应该可以正确渲染。