gpt4 book ai didi

wpf - 为什么每次调整 WPF 窗口大小时都会出现黑色延迟?

转载 作者:行者123 更新时间:2023-12-04 15:34:13 26 4
gpt4 key购买 nike

SE 上的其他问题解决了如何加快嵌套 UI 控件调整大小的速度,但是 - 如果没有任何控件怎么办?

当您拖动 WPF 窗口的边缘时,即使是没有内容的主窗口,在拖动过程中黑条也会短暂闪烁。这会产生一种糟糕的感觉——我不想给客户带来这种感觉:

WPF window being resized

它确实变得越来越慢,而且在它上面有一个完整的用户界面。这甚至没有涉及使用顶部或左侧边缘调整大小时的外观。 Windows 窗体 - 即使使用我构建的最重的 UI - 从一开始就看起来从来没有这么糟糕。

可以做些什么来使 WPF 窗口大小调整性能与 win 窗体相媲美?

(我在 AT Radeon HD 7470 上有 Windows 7 x64 和三重监视器系统。)

最佳答案

您可以更新您的图形卡并再次尝试,但这不会改变任何事情。原因很简单。我们有时会根据我们的计算机的速度/速度来看到这一点。有时它运行流畅,因为我们没有很多视觉效果要绘制。原因是当时在重绘过程​​中没有在图形卡中找到合适的背景颜色。您的驱动程序很好,这不仅仅是因为您使用 Wpf。其他技术在重绘背后使用相同的机制。

WPF 要做的第一件事就是清除将要重绘的脏区域。脏区的目的是减少发送到 GPU 管道输出合并阶段的像素数量。这是我们看到黑色的地方。此时窗口本身没有背景颜色,或者其背景颜色设置为透明,因此 GPU 绘制黑色背景。事情在 wpf 中异步运行,这很好。

要解决此问题,您可以为窗口设置一个固定颜色,例如“白色”。然后 WPF 系统将清除脏区域,但会自动用白色而不是黑色填充它。这通常有帮助。

匹配窗口颜色或最顶层的颜色。不要让 GPU 使用黑色,你应该做得很好。顺便说一句,Wpf 比 WinForm 快,所以别担心。

关于wpf - 为什么每次调整 WPF 窗口大小时都会出现黑色延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23014595/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com