积极答复者
Inkcanvas或者canvas可以对它们的点阵形式进行操作吗?

问题
答案
-
点阵像素,看样子有很多点或者图形你要绘制. 所以即使你开启一些缓存的特性或者在绘制的时候做预处理,有时候也很难达到你要的效果. 我还是建议你尝试下其他的技术把 WPF在对于大量图形绘制的时候确实有点技术瓶颈, (我记得官方也说过WPF并不适合去做一个游戏) 所以尝试下 DX 毕竟他是专门用来针对图形处理的。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 C.Lu 2011年4月2日 5:20
全部回复
-
不好意思,WPF无法这么直接的操作一个Panel中的像素的。Panel中的成员都是作为一个UIElement存在的。你如果想要具体操作绘制的特性,我觉得不要限定死去使用Canvas, 而是直接在一个Visual 的OnRender 方法中去Draw, 或者 如你以前所实现的,使用 DrawContext 来绘制内容。
还有,如果你已经在你的Panel中加入了这条线条, Line 对象,为何你不直接操作这个Line 对象,而要从Canvas的像素入手呢?
不过,说到像素级别的事,我想起了WPF是支持 Pixel Shader的,你可以尝试了解一下,关于Pixel Shader请看下论坛FAQ:http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/5f60098c-4d49-4ba6-a31c-c86c76a51d8a
Sincerely,
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
-
说起性能的话,前者比后者要好些.前者一般来说只是一个element对象的内容绘制,任何布局改变也只会影响着一个对象,后者就可能会有很多element受到影响。还有,假如你用了 BitmapCacheBrush 去缓存element图像的话,性能会更好一点。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
-
您的意思是不是,如果我用 BitmapCacheBrush去作为canvas的background的话,会提高canvas上的绘图效率?
Best Regards! C.Lu -
这个我也不能说绝对了,你还是百闻不如一试. 试一下就知道了. 一个合适的环境加上好的代码逻辑是可以提高性能的,但我们也知道不排除比较特殊的 糟糕的实现还会降低性能. 我只能说这个方向是可行,需要你自己继续尝试了.
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
-
点阵像素,看样子有很多点或者图形你要绘制. 所以即使你开启一些缓存的特性或者在绘制的时候做预处理,有时候也很难达到你要的效果. 我还是建议你尝试下其他的技术把 WPF在对于大量图形绘制的时候确实有点技术瓶颈, (我记得官方也说过WPF并不适合去做一个游戏) 所以尝试下 DX 毕竟他是专门用来针对图形处理的。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 C.Lu 2011年4月2日 5:20