c# - WPF 刷新绘图是否类似于 Windows 窗体?

标签 c# .net wpf performance

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

我想知道在这种情况下使用矢量的效果,而不是像窗口窗体那样基于位图的所有东西。

最佳答案

你可以看看 WPF architecture了解它的设置方式。

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

相比之下,GDI使用立即模式;也就是说,您实际上是直接写入像素,如果出于任何原因这些像素需要刷新,则需要重新渲染。

WPF 不一定实际上缓存所有内容 - 这取决于操作系统和内存可用性等。但是,如果确实需要重新渲染,它会使用您上次提供的场景图;它对程序员是透明的。此外,即使它“使用”DirectX,这基本上只是意味着它正在尽最大努力使用硬件支持,只要该功能可用并已实现。并非所有图形卡或所有 WPF 功能都完全加速。 This question关注区分不同的渲染模式以及由此带来的后果。

关于c# - WPF 刷新绘图是否类似于 Windows 窗体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518258/

相关文章:

C# 从 JSON 响应创建 Deedle DataFrame

c# - 如何将文件从服务器复制到客户端系统?

c# - 我是否需要将 AsQueryable() 用于在 .NET EF 中返回 IQueryable<Type> 的方法

c# - 在 C# 或 VB.NET 中不能做什么,您可以在 MSIL 中做什么?

c# - 如何找到.Net 应用程序中的性能热点?

c# - 如何以编程方式更改 wpf 窗口中的标题?

c# - 在 ViewModel 之间共享集合

WPF : Custom Button

c# - 系统.LINQ.动态 : Select (“new classname (…)” ) into a List<T> (or any other enumerable collection of <T>)

c# - 单例类和多线程