C# - C#中是否存在(类似).AddChild和.AddEventListeners,它们可以在Graphics上使用吗?

时间:2010-10-19 18:47:38

标签: c# graphics addeventlistener addchild

我是C#的新手,但不是OOP。

我想创建一个“画布”面板,用户可以通过鼠标点击绘制形状,但也可以删除它们(没有花哨的,固定的尺寸和诸如此类的普通旧笔对象)。就像我说的,我希望用户能够删除他点击的任何对象。

我不确定我究竟能做到这一点。如果我使用Flash,我可能会做类似的事情:

my_circle_object = new disc-or-whatever-etc;
canvas.addChild(my_circle_object);
my_circle_object.AddEventListener(MouseClickEvent, function_to_remove_child);

现在,由于编译语言是简单的前端UI相关内容的恶魔,我敢肯定,在C#中编写代码需要20倍的代码。但是,有什么类似于我的例子吗?

我整个下午都在阅读GraphicsContainers,SmoothingPaint,使用位图等的图形持久性等内容,但我从未找到过简单的添加事件方法..

谢谢

1 个答案:

答案 0 :(得分:0)

使用Graphics对象上的形状方法(例如DrawLineDrawEllipseDrawRect等)绘制的对象不代表概念对象就图形API而言。调用这些函数只是将项目作为位图绘制到图形表面。一旦完成,就没有任何东西可以将事件附加到。

您需要创建自己的形状类型并让它们自己绘制到图形对象。你必须在你正在使用的任何控件上附加适当的鼠标事件(我假设Panel)并进行自己的碰撞检测。