WPF:CLR属性到依赖属性

时间:2011-03-10 13:49:19

标签: wpf animation dependency-properties

我拥有属性

的用户控件
public double X
    {
        get
        {
            return Canvas.GetLeft(this) + this.Radius;
        }
        set
        {
            Canvas.SetLeft(this, value - this.Radius);
            PropertyChanged(this, new PropertyChangedEventArgs("X"));
        }
    }

我想使用与此属性相关的动画,但动画只需要依赖属性。我怎么解决这个问题?

2 个答案:

答案 0 :(得分:1)

嗯,所有这些属性都是从Canvas.Left派生出来的。为什么不直接为Canvas.Left制作动画?

答案 1 :(得分:1)

看起来您希望“X”成为对象的中心(Ellipse?)

我可以建议两件事:

  1. 创建一个新的依赖项proeprty并将您的setter代码放入OnPropertyChanged回调中以获取新属性。 (这可能是最好的)

  2. 将RenderTransform设置为带-Radius的TranslateTransform元素,然后设置Canvas.Left就像设置其中心一样。