如何向Image类添加基本属性?

时间:2012-02-07 15:36:15

标签: c# windows-phone-7

我想为图片添加一些基本属性。我通常会这样做

public class ExtendedImage: Image
{
}

但是当然,这是不允许的,因为它是密封的。

我还可以采取其他哪些方式?我想扩展Image的原因是因为我希望动态创建和销毁对象,这些对象会在应用程序中拖放。所以我想添加操作处理程序和手势,以及从各种显示对象中添加和删除对象。

我不相信我能够将一个Image实例注入我的基类,因为当我尝试让我的动态创建的图像响应各种操作时,数据和图像将被解耦事件等(基于图像放置在主画布上的位置,我需要它具有不同的功能。

非常感谢有关此问题的任何建议。

1 个答案:

答案 0 :(得分:3)

您可以使用Tag属性关联实例并获得所需的行为。类似的东西:

public class ExtendedImageController
{
    // add methods and properties as necessary
}

// client code
var img = new Image(); // ...
img.Tag = new ExtendedImageController(img); // with reference to image

// in some event handler:
var ctrl = (ExtendedImageController)img.Tag;
ctrl.DoCleanupThings(); 
// ...