有人能解释一下,在WPF中使用AddOwner方法(依赖属性)有什么好处吗?我有一些误解。
对于实例,请看下面的代码。
public class TestVisual: Shape
{
private LineGeometry line = new LineGeometry();
public static readonly DependencyProperty XY1Property =
LineGeometry.StartPointProperty.AddOwner(
typeof(TestVisual),
new FrameworkPropertyMetadata(new Point(0,0),
FrameworkPropertyMetadataOptions.AffectsMeasure));
public static readonly DependencyProperty XY2Property =
LineGeometry.EndPointProperty.AddOwner(
typeof(TestVisual),
new FrameworkPropertyMetadata(new Point(0, 0),
FrameworkPropertyMetadataOptions.AffectsMeasure));
public Point XY1
{
get { return (Point)GetValue(XY1Property);}
set { SetValue(XY1Property,value); }
}
public Point XY2
{
get { return (Point)GetValue(XY2Property); }
set { SetValue(XY2Property, value); }
}
protected override Geometry DefiningGeometry
{
get
{
line.StartPoint = XY1 ;
line.EndPoint = XY2;
return line;
}
}
}从上面的代码中可以看出,TestVisual类对依赖属性使用AddOwner方法。好的,但同样的结果我们可以变得更容易(我的意思是我们可以得到一个类,它允许通过设置XY1和XY2点来调整线视觉元素):
public class TestVisual: Shape
{
private LineGeometry line = new LineGeometry();
public Point XY1
{
get;
set;
}
public Point XY2
{
get;
set;
}
protected override Geometry DefiningGeometry
{
get
{
line.StartPoint = XY1 ;
line.EndPoint = XY2;
return line;
}
}
}那么重点是什么呢?提前谢谢。
发布于 2012-05-25 19:04:49
关键是XY1和XY2在第一个版本中是依赖属性,在第二个版本中是简单的.NET属性。请参阅Why dependency properties?
通常,AddOwner用于使依赖项属性在最终不是从拥有依赖项属性的类型派生的类型上可用。
https://stackoverflow.com/questions/10753286
复制相似问题