Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF刷新图形是否与Windows窗体类似?_C#_.net_Wpf_Performance - Fatal编程技术网

C# WPF刷新图形是否与Windows窗体类似?

C# WPF刷新图形是否与Windows窗体类似?,c#,.net,wpf,performance,C#,.net,Wpf,Performance,因此,如果我有一个WPF窗口,在WPF窗口上移动另一个窗口会导致WPF窗口像Windows窗体一样进行数千次重画吗 我想知道在这种情况下使用矢量的效果,而不是像窗口窗体那样基于位图的所有内容。WPF的渲染处理方式与Windows窗体完全不同。它使用DirectX来渲染自身,因此与Windows窗体相比,渲染的此类问题要少得多 (然而,这确实会导致一些自身的问题,特别是,它对图形卡的性能有更高的要求…您可以浏览一下以了解其设置方式 回答您的特定问题:WPF使用保留模式绘图系统。特别是,这意味着任何

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


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

WPF的渲染处理方式与Windows窗体完全不同。它使用DirectX来渲染自身,因此与Windows窗体相比,渲染的此类问题要少得多


(然而,这确实会导致一些自身的问题,特别是,它对图形卡的性能有更高的要求…

您可以浏览一下以了解其设置方式

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

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

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