【发布时间】:2011-09-01 22:22:56
【问题描述】:
我有一个派生自 TextBox 的类,我将一个名为 position 的点类型的依赖属性附加到该类,并在其设置部分中设置 Canvas.Top 和 Canvas.Left 属性。只是为了澄清一下,每当源属性更改时,它调用属性的 set 部分是否正确?因为当我的源更新时,文本框的 canvastop 和 canvasleft 属性不会更新。 任何帮助,将不胜感激。
public static readonly DependencyProperty PositionProperty = DependencyProperty.Register("Position", typeof(Point), typeof(TextBox), new FrameworkPropertyMetadata(new Point(0, 0)));
public Point Position
{
get { return (Point)GetValue(PositionProperty); }
set
{
SetValue(PositionProperty, value);
Canvas.SetLeft(this, value.X - this.Width / 2);
Canvas.SetTop(this, value.Y - this.FontSize);
}
}
this.TextBoxShape.SetBinding(TextBoxShape.PositionProperty, CreateConnectorBinding(this));
CreateConnectorBinding 根据 Canvas.Top 和 Canvas.Left 属性返回椭圆的中点。但是当Ellipse的Canvas.Top和Canvas。左侧属性得到更新,文本框的位置仍未更新。
【问题讨论】: