因此,如果我有一个 WPF窗口,在 WPF窗口上移动另一个窗口会导致WPF窗口像 Windows窗体那样进行数千次重绘吗? 我想知道在这种情况下使用向量的效果,而不是像Window Forms一样基于位图. 你可
我想知道在这种情况下使用向量的效果,而不是像Window Forms一样基于位图.
你可以看看 WPF architecture来了解它是如何设置的.要回答您的具体问题:WPF使用保留模式绘图系统.特别是,这意味着在没有您干预的情况下在幕后处理任何必要的重绘(可能是必要的).
相比之下,GDI使用立即模式;即你基本上直接写像素,如果 – 由于任何原因 – 这些像素需要刷新,你需要重新渲染.
WPF并不一定实际缓存所有内容 – 这取决于操作系统和内存可用性等.但是,如果它确实需要重新渲染,它将使用您上次提供的场景图来执行此操作;它对程序员来说是透明的.此外,即使它“使用”DirectX,这基本上只是意味着它正在尽最大努力使用硬件支持并在该功能上实现.并非所有图形卡或所有WPF功能都完全加速. This question关注的是告诉不同的撕裂模式以及所带来的后果.