如何在后面的代码中访问附加属性?

我在我的XAML中有一个矩形,并想在后面的代码中更改它的Canvas.Left属性:

 <UserControl x:Class="Second90.Page" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="400" Height="300" KeyDown="txt_KeyDown"> <Canvas> <Rectangle Name="theObject" Canvas.Top="20" Canvas.Left="20" Width="10" Height="10" Fill="Gray"/> </Canvas> </UserControl> 

但是这不起作用:

 private void txt_KeyDown(object sender, KeyEventArgs e) { theObject.Canvas.Left = 50; } 

有谁知道这是什么语法?

 Canvas.SetLeft(theObject, 50) 

尝试这个

 theObject.SetValue(Canvas.LeftProperty, 50d); 

DependencyObject(大多数WPF类的基础)上有一组方法允许对所有依赖属性进行公共访问。 他们是

  • 设定值
  • 的GetValue
  • ClearValue

编辑由于目标types是双精度,所以更新了集合以使用双重字面值。

当我们改变“对象”的属性时,最好使用JaredPar的suggedte方法:

 theObject.SetValue(Canvas.LeftProperty, 50d);