2012-03-27 51 views
1

这是一个相当简单的问题对象的可视化属性:定义扩展FrameworkElement的Windows Phone中

我想建立在Windows Phone的一个对象,它扩展了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 

感谢您的支持!

回答

0

我不知道你想要做什么,所以这只是一个想法:使用Image类还是从它继承,因为ImageFrameworkElement继承?

你可能做这样的事情:

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); 

正如我写这篇文章,我想,你不只是用图像,而且其他视觉元素?如果是这样,这不会是一个解决方案。

+0

谢谢,但那并不直接回答我的问题。虽然它可以解决我的问题,但是,我想知道是否存在直接定义视觉属性的方法,例如DataContext就是我的想法。 – 2012-03-30 12:13:24