【问题标题】:PropertyPath Issue - Cannot resolve all property references in property path(Canvas.SetLeft)PropertyPath 问题 - 无法解析属性路径中的所有属性引用(Canvas.SetLeft)
【发布时间】:2013-05-24 17:19:32
【问题描述】:

我正在尝试移动一个矩形。有没有其他的属性可以使用。请帮帮我。谢谢!

Rectangle myRectangle = new Rectangle();
Color myColor = Color.FromArgb(255, 255, 0, 0);
SolidColorBrush myBrush = new SolidColorBrush();
myRectangle.Width = 200;
myRectangle.Height = 200;            
myBrush.Color = myColor;
myRectangle.Fill = myBrush;

Canvas.SetLeft(myRectangle, 200);
Canvas.SetTop(myRectangle, 200);

canvasPanel.Children.Add(myRectangle);

Duration duration = new Duration(TimeSpan.FromSeconds(2));

DoubleAnimation myDoubleAnimation1 = new DoubleAnimation();
DoubleAnimation myDoubleAnimation2 = new DoubleAnimation();

myDoubleAnimation1.Duration = duration;
myDoubleAnimation2.Duration = duration;

Storyboard sb = new Storyboard();
sb.Duration = duration;

sb.Children.Add(myDoubleAnimation1);
sb.Children.Add(myDoubleAnimation2);

Storyboard.SetTarget(myDoubleAnimation1, myRectangle);
Storyboard.SetTarget(myDoubleAnimation2, myRectangle);


Storyboard.SetTargetProperty(myDoubleAnimation1, new PropertyPath("Canvas.SetLeft"));
Storyboard.SetTargetProperty(myDoubleAnimation2, new PropertyPath("Canvas.SetTop"));

myDoubleAnimation1.To = 200;
myDoubleAnimation2.To = 200;

canvasPanel.Resources.Add("unique_id", sb);
RootWindow.Content = canvasPanel;

sb.Begin();

【问题讨论】:

    标签: c# wpf canvas


    【解决方案1】:

    这是因为SetLeftSetTop 是方法而不是属性。你需要做的是:

    Storyboard.SetTargetProperty(myDoubleAnimation1, new PropertyPath(Canvas.LeftProperty));
    Storyboard.SetTargetProperty(myDoubleAnimation2, new PropertyPath(Canvas.TopProperty));
    

    【讨论】:

      猜你喜欢
      • 2010-12-24
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      相关资源
      最近更新 更多