如何使用C#防止文本块重叠?

时间:2017-06-22 08:47:52

标签: c# wpf textblock

我试图在循环的每次迭代结束时使用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的主网格。

2 个答案:

答案 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中设置结果。您可以对列

执行相同的操作