C# 更改Canvas.Left属性在代码隐藏中?
我的XAML中有一个矩形,希望更改其C# 更改Canvas.Left属性在代码隐藏中?,c#,wpf,code-behind,attached-properties,C#,Wpf,Code Behind,Attached Properties,我的XAML中有一个矩形,希望更改其画布。代码隐藏中的Left属性: 但这不起作用: private void txt_KeyDown(object sender, KeyEventArgs e) { theObject.Canvas.Left = 50; } 有人知道这样做的语法吗?试试这个 theObject.SetValue(Canvas.LeftProperty, 50d); DependencyObject(大多数WPF类的基础)上有一组方法,允许对所有依赖属性进行公共
画布。代码隐藏中的Left
属性:
但这不起作用:
private void txt_KeyDown(object sender, KeyEventArgs e)
{
theObject.Canvas.Left = 50;
}
有人知道这样做的语法吗?试试这个
theObject.SetValue(Canvas.LeftProperty, 50d);
DependencyObject(大多数WPF类的基础)上有一组方法,允许对所有依赖属性进行公共访问。是的
- 设定值
- GetValue
- 净值
Canvas.SetLeft(theObject, 50)
由于我们正在更改“对象”的属性,最好使用JaredPar建议的方法:
theObject.SetValue(Canvas.LeftProperty, 50d);
谢谢,为了让它工作,我必须强制转换整数:theObject.SetValue(Canvas.LeftProperty,(double)50);否,为此指定双精度格式的数值常量:heObject.SetValue(Canvas.LeftProperty,50.0)+1、必须热爱类型安全。我很好奇为什么SetLeft使用UIElement而不是DependencyObject@JaredPar:大概我会说,由于SetLeft是一种特殊的Canvas方法,因此它理解将Left属性赋予哪些类型是有意义的。它认为这是UIElement,这可能会增加错误代码的检测,因为错误的变量意外地传递给它。Left是一个附加属性,它支持XAML用法。在代码中设置此属性时,请改用SetLeft。