我试图在循环的每次迭代结束时使用C#将TextBlock添加到我的MainWindow。
然而,每次迭代他们都会在前一个迭代之上添加一个。 TextBlocks的哪些属性(如果有的话)允许我阻止它们重叠?
以下是for循环:
TextBlock result = new TextBlock();
result.Text = [string];
result.Width = 200;
result.Height = 100;
result.Margin = new Thickness(20, 20, 20, 20);
result.Name = "email" + [string];
Analysis_Space.Children.Add(result);
Analysis_Space是指我的MainWindow的主网格。
答案 0 :(得分:0)
正确使用面板控件可帮助您解决此问题。根据您的GUI需求,您可以使用哪个面板。请参阅this链接。
例如,将新StackPanel
放在Analysis_Space
上。然后,将您的文字区域添加到StackPanel
。
您的新代码如下所示:
TextBlock result = new TextBlock();
result.Text = [string];
result.Width = 200;
result.Height = 100;
result.Margin = new Thickness(20, 20, 20, 20);
result.Name = "email" + [string];
stackPanel.Children.Add(result);
在上面的代码中,stackPanel
表示放置在主网格面板上的StackPanel
实例。
答案 1 :(得分:0)
如果您正在使用网格,但是您没有告诉程序在哪个行/列中放置文本块,它会将它们放在默认的0,0位置(即Grid.Row = 0和Grid.Column) = 0)
你必须这样做:
Grid.SetRow(result, 1);
在行号1中设置结果。您可以对列
执行相同的操作