C# 以编程方式在画布中定位元素:编译器看不到SetTop

C# 以编程方式在画布中定位元素:编译器看不到SetTop,c#,wpf,canvas,position,C#,Wpf,Canvas,Position,我以前已经使用过Canvas.SetLeft或Canvas.SetTop,但现在我遇到了一个错误。 我在一个包裹内有画布,包裹在窗口的网格内: <Grid> <WrapPanel> </WrapPabel> </Grid> 哦,我明白了。我只是将System.Windows.Controls.Canvas.SetTop改为仅Canvas.SetTop 太遗憾了。这可能是因为您有一个名为Canvas的方法。因此,只需点击Canva

我以前已经使用过
Canvas.SetLeft
Canvas.SetTop
,但现在我遇到了一个错误。 我在一个包裹内有画布,包裹在窗口的网格内:

<Grid>
    <WrapPanel>

    </WrapPabel>
</Grid>

哦,我明白了。我只是将
System.Windows.Controls.Canvas.SetTop
改为仅
Canvas.SetTop


太遗憾了。

这可能是因为您有一个名为
Canvas
的方法。因此,只需点击
Canvas.SetTop
就可以尝试访问
Canvas()
方法的
.SetTop
,这是没有意义的。我敢打赌,如果您将
public void Canvas()
重命名为其他名称,
Canvas.SetTop
会很好。自从找到解决方案以来,已经过了很长时间。请将您自己的答案标记为“已接受”,以便我们知道您的问题/问题现在已解决!
public void Canvas()
    {
        Canvas[] cans = new Canvas[5];
        Label[] lb = new Label[5];
        for (int i = 0; i < 5; i++)
        {
            lb[i] = new Label();
            cans[i] = new Canvas();
            cans[i].Height = 132;
            cans[i].Width = 283;
            cans[i].Background = new SolidColorBrush(Colors.Gray);
            cans[i].Margin = new System.Windows.Thickness(5);
            lb[i].Content = "BOSTA";
            Canvas.SetTop(lb[i], 20);  //problematic line
            cans[i].Children.Add(lb[i]);
            wp.Children.Add(cans[i]);
        }
    }