为在Windows Phone中扩展FrameworkElement的对象定义视觉属性

本文关键字:对象 定义 视觉 属性 FrameworkElement Windows Phone 扩展 为在 | 更新日期: 2023-09-27 18:29:07

这是一个相当简单的问题:

我想在windowsphone中构建一个扩展frameworkElement类的对象。

public class ObjectName: FrameworkElement
       {
            public Image image {get; set;}

这个类应该有一个可视化属性,例如和Image。问题是:我如何定义每次以视觉方式引用这个对象时,我实际上是在引用Image属性?例如:

Canvas.SetTop(ObjectName, h * height);
Canvas.SetLeft(ObjectName, w * width);
PictureBoard.Children.Add(ObjectName); // PictureBoard is a Canvas element

而不是

Canvas.SetTop(ObjectName.image, h * height);
Canvas.SetLeft(ObjectName.image, w * width);
PictureBoard.Children.Add(ObjectName.image); // PictureBoard is a Canvas element

感谢您的支持!

为在Windows Phone中扩展FrameworkElement的对象定义视觉属性

我不知道你到底想做什么,所以这只是一个想法:使用Image类或从它继承不是更容易吗,因为Image是从FrameworkElement继承的吗?

你可以做这样的事情:

public class SpecialImage : Image
{
    // if you want to add custom logic, do it :)
}
SpecialImage specialImage = new SpecialImage();
Canvas.SetTop(specialImage, h * height);
Canvas.SetLeft(specialImahe, w * width);
PictureBoard.Children.Add(specialImage);

在我写这篇文章的时候,我想,你不仅仅使用图像,还使用其他视觉元素?如果是这样的话,这就不是一个解决方案。