为什么此代码没有';是否在WPF中创建10行?

为什么此代码没有';是否在WPF中创建10行?,wpf,shape,Wpf,Shape,我是WPF的初学者,我把下面的代码放在一个按钮点击处理程序中,我希望点击按钮后会有10条垂直线,但只有一条,有什么想法吗?谢谢“spDrawPanel”是一个stackpanel double aw = this.spDrawPanel.ActualWidth; double ah = this.spDrawPanel.ActualHeight; for (int i = 1; i <= 10; i++) {

我是WPF的初学者,我把下面的代码放在一个按钮点击处理程序中,我希望点击按钮后会有10条垂直线,但只有一条,有什么想法吗?谢谢“spDrawPanel”是一个stackpanel

        double aw = this.spDrawPanel.ActualWidth;
        double ah = this.spDrawPanel.ActualHeight;
        for (int i = 1; i <= 10; i++)
        {
            Line ln = new Line();
            ln.Stroke = Brushes.Black;
            ln.X1 = aw / 10 * i;
            ln.Y1 = ah;
            ln.X2 = aw / 10 * i;
            ln.Y2 = ah - 15;
            ln.StrokeThickness = 1;
            this.spDrawPanel.Children.Add(ln);
        }
double aw=this.spDrawPanel.ActualWidth;
double ah=this.spDrawPanel.ActualHeight;

对于(int i=1;i问题在于,您使用的是一个
StackPanel
,默认情况下,它将每一行相互堆叠,并且您从
StackPanel
底部开始,因此您的房地产已经用完。尝试将Y1设置为15,Y2设置为0,您将得到10行。

您是否设置了断点t在调试器中验证spDrawPanel.Children集合是否确实有10个子项,并验证结果行的X/Y坐标?是的,它有10个子项,并且它们的X/Y不同。谢谢!是的,问题是由StackPanel引起的,我只是用Canvas替换StackPanel,所有工作正常。非常感谢。