如何使用C#防止文本块重叠?
我正在尝试使用C#在循环的每次迭代结束时向我的主窗口添加一个文本块 但是,每次迭代都会在前一次迭代的基础上添加一次迭代。TextBlock的什么属性(如果有的话)允许我防止它们重叠 以下内容位于for循环中:如何使用C#防止文本块重叠?,c#,wpf,textblock,C#,Wpf,Textblock,我正在尝试使用C#在循环的每次迭代结束时向我的主窗口添加一个文本块 但是,每次迭代都会在前一次迭代的基础上添加一次迭代。TextBlock的什么属性(如果有的话)允许我防止它们重叠 以下内容位于for循环中: TextBlock result = new TextBlock(); result.Text = [string]; result.Width = 200; result.Height = 100; result.Margin = new Thickness(20, 20, 20,
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);
分析空间指的是我的主窗口的主网格。正确使用面板控件将帮助您解决此问题。使用哪个面板取决于您的GUI需求。参考链接 例如,将新的
堆栈面板
放在分析空间
上。然后,将文本区域添加到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
的实例。正确使用面板控件将帮助您解决此问题。使用哪个面板取决于您的GUI需求。参考链接
例如,将新的堆栈面板
放在分析空间
上。然后,将文本区域添加到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
的实例。如果您使用网格,但您没有告诉程序应该将文本块放置在哪个行/列中,它会将它们放置在默认的0,0位置(即grid.row=0和grid.column=0)
您必须这样做:
Grid.SetRow(result, 1);
在第1行中设置结果。如果您正在使用网格,则可以对列执行相同的操作,但您没有告诉程序应将文本块放置在哪个行/列中,它会将它们放置在默认的0,0位置(即grid.row=0和grid.column=0) 您必须这样做:
Grid.SetRow(result, 1);
在第1行中设置结果。您可以对列执行相同的操作不要使用
边距
来定位控件,请使用适当的布局。将控制装置置于合适的位置。例如,您现在有了网格
,它的列和行,并将子元素放在那里。使用具有真实方向的StackPanel如果您使用边距使用适当的面板(而不是网格)对齐适当的边,则不应在代码隐藏中创建或操作UI元素。最好使用ItemsControl并将其ItemsSource属性绑定到ObservableCollection
。有关所有详细信息,请参阅本文。还请注意,面板可以嵌套。无需向顶层面板添加元素。所有内容都非常有用,谢谢@克莱门斯,你的建议与我现在学习的内容特别相关,因此感谢你的帮助。不要使用Margin
来定位控件,使用正确的布局。将控制装置置于合适的位置。例如,您现在有了网格
,它的列和行,并将子元素放在那里。使用具有真实方向的StackPanel如果您使用边距使用适当的面板(而不是网格)对齐适当的边,则不应在代码隐藏中创建或操作UI元素。最好使用ItemsControl并将其ItemsSource属性绑定到ObservableCollection
。有关所有详细信息,请参阅本文。还请注意,面板可以嵌套。无需向顶层面板添加元素。所有内容都非常有用,谢谢@克莱门斯,你的建议和我现在学到的东西特别相关,所以谢谢你的帮助。