sco*_*obi 7 wpf user-interface rendering
我有一个复杂的WPF控件,它在OnRender中绘制了很多原语(它有点像地图).当它的一小部分发生变化时,我只想为受影响的元素重新发出渲染命令,而不是运行整个OnRender.虽然我对OnRender函数在调整大小或其他方面的性能很好,但它对于基于鼠标悬停的基元突出显示来说还不够快.
目前我知道如何强制屏幕更新的唯一方法是调用InvalidateVisual().无法发送脏的rect区域以使其无效.
WPF屏幕组成的最低粒度是UI元素吗?我是否需要将原始渲染渲染到中间目标中,然后使用InvalidateVisual()更新到屏幕?
WPF 的工作方式与此不同,因此您无法使区域无效。但是,可以进行一些优化。有一个“测量”、“排列”和“渲染”通道。如果控件移动但实际呈现的内容没有改变,那么您可以告诉 WPF 仅执行排列过程。您可以使用 FrameworkPropertyMetadata 和 FrameworkPropertyMetadataOptions ( http://msdn.microsoft.com/en-us/library/system.windows.frameworkpropertymetadataoptions.aspx )因依赖项属性值更改而触发这些失效。
归档时间: |
|
查看次数: |
1975 次 |
最近记录: |