在WPF中找不到附加属性

时间:2018-08-16 06:48:43

标签: c# wpf canvas

我是WPF的新手,但不是编程人员,我试图找到ZIndex,Canvas.Top,Canvas.Left之类的附加属性,但未在C#代码中显示给我。

  • 我知道我必须将控件放入画布
  • 我知道还有另一种调用Canvas.SetIndex的方法(我也找不到)

我可以在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方法或属性。

2 个答案:

答案 0 :(得分:3)

Button本身没有Canvas。应该这样做:

Canvas.SetTop(button1, 5);

然后:

canvas.Children.Add(button1);

答案 1 :(得分:0)

xaml Canvas.Top属性的

c#等价物为Canvas.TopPropertyCanvas.Top在c#代码中不存在;在xaml中,由于附加的DP命名约定而被识别。

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

button1.SetValue(Canvas.TopProperty, 5.0);

Canvas.SetTop()在内部使用SetValue()Canvas.TopPropertyCanvas.SetTop()具有类型安全的优点。它接受double个参数,而不接受object。例如。由于button1.SetValue(Canvas.TopProperty, 5);是int

,因此5引发ArgumentException