我是WPF的新手,但不是编程人员,我试图找到ZIndex,Canvas.Top,Canvas.Left之类的附加属性,但未在C#代码中显示给我。
我可以在XAML代码中看到所有这些属性,但是无法通过C#代码访问它们。
<Button Canvas.Left="192" Canvas.Top="102" Content="Button" Height="108" Name="button1" Width="173" /> <- XAML Part
button1.Canvas.Top = 5; <- C# Part
它说button1没有任何Canvas.Top方法或属性。
答案 0 :(得分:3)
Button
本身没有Canvas
。应该这样做:
Canvas.SetTop(button1, 5);
然后:
canvas.Children.Add(button1);
答案 1 :(得分:0)
Canvas.Top
属性的 c#等价物为Canvas.TopProperty
。 Canvas.Top
在c#代码中不存在;在xaml中,由于附加的DP命名约定而被识别。
可以使用SetValue
方法将Canvas.TopProperty设置为任何DependencyObject:
button1.SetValue(Canvas.TopProperty, 5.0);
Canvas.SetTop()
在内部使用SetValue()
和Canvas.TopProperty
。 Canvas.SetTop()
具有类型安全的优点。它接受double
个参数,而不接受object
。例如。由于button1.SetValue(Canvas.TopProperty, 5);
是int
5
引发ArgumentException