C# Can';在WPF中找不到附加属性

C# Can';在WPF中找不到附加属性,c#,wpf,canvas,C#,Wpf,Canvas,我是WPF新手,但不是编程新手,我正在尝试查找附加属性,如ZIndex、Canvas.Top、Canvas.Left,但它没有在C代码中显示 我知道我必须把我的控制权放在画布上 我知道还有另一个方法调用Canvas.SetIndex(我也找不到) 我可以在XAML代码中看到所有这些属性,但用C#代码无法访问它们 按钮本身没有画布。这应该做到: Canvas.SetTop(按钮1,5) 然后: canvas.Children.Add(按钮1)c#相当于xamlCanvas.Top属性将是Can

我是WPF新手,但不是编程新手,我正在尝试查找附加属性,如ZIndex、Canvas.Top、Canvas.Left,但它没有在C代码中显示

  • 我知道我必须把我的控制权放在画布上
  • 我知道还有另一个方法调用Canvas.SetIndex(我也找不到)
我可以在XAML代码中看到所有这些属性,但用C#代码无法访问它们


按钮本身没有
画布
。这应该做到:

Canvas.SetTop(按钮1,5)

然后:

canvas.Children.Add(按钮1)

c#相当于xaml
Canvas.Top
属性将是
Canvas.TopProperty
<代码>画布.Top
在c#代码中不存在;在xaml中,由于附加的DP命名约定,可以识别它

Canvas.TopProperty可以使用
SetValue
方法设置为任何DependencyObject:

button1.SetValue(Canvas.TopProperty, 5.0);

Canvas.SetTop()
在内部使用
SetValue()
Canvas.TopProperty
Canvas.SetTop()
具有类型安全的优点。它接受双参数,而不是对象。例如
按钮1.设置值(Canvas.TopProperty,5)
抛出ArgumentException,因为
5
是int

谢谢,我不知道SetTop方法来自类Canvas,我只尝试了canvas1.SetTop:D@Guardian没问题,老兄,如果答案对你有帮助,而且是你一直在寻找的答案,一定要把我的答案标记为正确。另外,对于将来的问题,如果有答案,你应该始终将答案标记为正确。是的,ik,但我必须等待答案:D
button1.SetValue(Canvas.TopProperty, 5.0);