在C#中,Java的canvas对象有什么用呢?

时间:2010-03-31 15:51:32

标签: c# .net graphics drawing

我正在创建一个基本应用程序,让用户绘制(使用一系列点),我打算用这些点做点什么。

如果这是Java,我想我可能会使用canvas对象和一些Java2D调用来绘制我想要的东西。

我在C#/ Drawing上阅读的所有教程都涉及编写自己的绘制方法并将其添加到表单的绘图事件中。但是,我也有兴趣使用一些传统的Form控件,我不想画它们。那么,是否有一个“画布”对象,我可以约束我正在绘制的内容?

另外,考虑到这个用例,WinForms是一个糟糕的选择吗? WPF会有更多功能可以帮助我做我想做的事吗?还是Silverlight?

2 个答案:

答案 0 :(得分:2)

Bitmap可以正常工作,使用PictureBox.Image属性显示它。使用Graphics.FromImage()获取您需要在位图上绘制的Graphics对象。使用PictureBox.Invalidate()让PB知道它需要更新屏幕上的图像。

答案 1 :(得分:0)

嗯,在WPF中有一个名为'canvas'的control可能适合你。如果您使用的是Windows窗体,我认为最好的选择是使用panel控件。 Windows窗体绝不是一个糟糕的选择。实际上,在使用它们时,您甚至可以开发跨平台应用程序。但是,WPF在某种程度上更“富有”。我认为,如果你不是针对任何其他平台,并且你不必坚持使用.NET 2.0 WPF是一个首选(特别是,如果你要在你的应用程序中使用一些图形,因为WPF使用硬件加速)。