2009-10-01 61 views
1

我正在研究Silverlight。我有一个应用程序,我在UserControl_Loaded方法中创建多边形。在创建阶段,我添加MouseLeftButtonUp事件处理程序,如下所示:Silverlight,形状的自定义对象

polygon.MouseLeftButtonUp += MouseButtonEventHandler_MouseLeftButtonUp; 

所有多边形都具有相同的处理程序。

我的目标是在单击多边形时使用自定义对象。

例如,我有两个多边形;他们都有int MyCustomInt32属性。该物业在创作阶段设置。对于第一个多边形,它被设置为10,第二个为20.当事件触发时,我想检索并设置MyCustomInt32值。当然,值应该不同,这取决于我点击哪个多边形。

在Silverlight中可以做到吗?

谢谢。

+0

您可能需要花几分钟时间查看您以前的问题,有没有可以接受答案的地方? – AnthonyWJones 2009-10-01 08:22:51

回答

1

你可以施放sender参数您的自定义类的类型: -

private void MouseButtonEventHandler_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) 
{ 
    var polygon = (MyCustomPolygon)sender; 
    int x = polygon.MyCustomInt32; 
} 

编辑

在效应初探您的意见,实际上是创建一个自定义控制的实现是主题太宽了。然而,网站上有大量的文章要审查。一对夫妇的例子是: -

有很多更发现用简单的网页搜索 “自定义控件Silverlight的”。

+0

谢谢你的回答。您能否提供一个代码片段来说明如何在您的应用中实现MyCustomPolygon?是否有可能创建一个新的类并从Polygon类继承它? – Antipod 2009-10-01 08:37:19

+0

您不能继承其封闭的多边形。您可以创建一个包含多边形的自定义控件。 – AnthonyWJones 2009-10-01 08:55:05

+0

谢谢。我会尝试。 – Antipod 2009-10-01 09:08:38