WPF是否类似于Windows Forms刷新绘图?

3

如果我有一个WPF窗口,将另一个窗口移动到WPF窗口上会像Windows Forms一样导致WPF窗口进行数千次重绘吗?

我在想在这种情况下使用矢量图的效果,与像Windows Forms一样全部基于位图的效果有何区别。

2个回答

6
您可以查看WPF架构,以了解其设置方式。
具体回答您的问题:WPF使用保留模式绘图系统。特别是,这意味着任何必要的重绘(可能需要)都在幕后处理,无需您的干预。
相比之下,GDI使用即时模式;也就是说,您基本上是直接写像素,如果出于任何原因这些像素需要刷新,则需要重新渲染。
WPF不一定会实际缓存所有内容-这取决于操作系统和可用内存等因素。但是,如果它确实需要重新渲染,则将使用您最后提供的场景图进行渲染;对程序员来说是透明的。此外,即使它“使用”DirectX,这基本上只意味着它正在尽力使用硬件支持,只要该功能可用并为其实现。并非所有图形卡和所有WPF功能都得到完全加速。这个问题涉及区分不同渲染模式以及所产生的后果。

1

WPF的渲染与Windows Forms完全不同。它使用DirectX来进行渲染,因此相比Windows Forms,渲染往往会遇到更少的这种问题。

(然而,这也会导致一些自身的问题-特别是需要更高的显卡要求才能获得良好的性能...)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接