【发布时间】:2011-10-19 04:43:02
【问题描述】:
我必须在画布上绘制图表(由滚动查看器绑定)。并且内存中大约有 200 个左右的节点。
为了简单起见,我从一个可以呈现自身的用户控件中派生出节点。
但我还没有在节点之间创建线。我从MSDN 知道,
从表面上看,Geometry 类和 Shape 类非常相似。两者都用于 2D 图形的渲染,并且都有类似的派生自它们的具体类,例如 EllipseGeometry 和 Ellipse。但是,这两组类之间存在重要差异。一方面,Geometry 类缺少 Shape 类的一些功能,例如绘制自身的能力。
因为可以有更多的节点,系统可能会缓慢地渲染事物。因此,为了提高性能,我觉得最好的选择是 Geometry(自定义渲染)。
我的问题:
我应该使用 Shape 还是 Geometry 来绘制线条?
我应该只渲染滚动查看器的当前视口区域以加快显示速度(在这种情况下,我必须将节点从控件转换为几何对象),还是应该只遍历 ALL节点并在它们之间画线?
我应该将内存中的图形渲染到位图上然后翻转它吗?这听起来更像是游戏编程而不是一般应用程序编程! :D
WPF 是否不会自动处理呈现视图中的内容和不呈现更好性能的内容?
【问题讨论】:
标签: c# wpf performance canvas graph