WPF是否刷新类似于Windows窗体的绘图?

因此,如果我有一个WPF窗口,那么在WPF窗口上移动另一个窗口会导致WPF窗口像Windows窗体一样进行数千次重绘吗?

我想知道在这种情况下使用向量的效果,而不是像Window Forms一样基于位图。

您可以看一下WPF架构,以了解它是如何设置的。

要回答您的具体问题:WPF使用保留模式绘图系统。 特别是,这意味着在没有您干预的情况下在幕后处理任何必要的重绘(可能是必要的)。

相比之下,GDI使用立即模式; 即你基本上直接写像素,如果 – 由于任何原因 – 这些像素需要刷新,你需要重新渲染。

WPF并不一定实际缓存所有内容 – 这取决于操作系统和内存可用性等。 但是,如果确实需要重新渲染,它将使用您上次提供的场景图来执行此操作; 它对程序员来说是透明的。 此外,即使它“使用”DirectX,这基本上只意味着它正在尽最大努力使用硬件支持,并且已经实现了该function。 并非所有图形卡或所有WPFfunction都完全加速。 这个问题涉及告诉不同的rending模式和所带来的后果。

WPF的呈现处理方式与Windows Forms完全不同。 它使用DirectX来渲染自身,因此渲染往往比Windows Forms具有更少的问题。

(然而,这确实会引起一些自身的问题 – 特别是,它对显卡的要求越来越高……)