我在屏幕上的画布上添加了我的页面上的按钮,所以当我点击“添加标题”时,它会在某个位置添加一个文本框,当我点击添加问题时,它会做同样的事情。
以下是我执行此操作的代码。
public void AddTitle_Click(object sender, RoutedEventArgs e)
{
TextBox x = new TextBox();
x.Name = "new_textbox";
x.TextWrapping = TextWrapping.Wrap;
x.Height = 20;
x.Width = 100;
x.AcceptsReturn = true;
x.Margin = new Thickness(5, 10, 0, 0);
canvas1.Children.Add(x);
Canvas.SetLeft(x, 100);
Canvas.SetTop(x, 100);
}
private void AddQuestion_Click(object sender, RoutedEventArgs e)
{
TextBox x = new TextBox();
x.Name = "new_textbox";
x.TextWrapping = TextWrapping.Wrap;
x.Height = 20;
x.Width = 200;
x.AcceptsReturn = true;
x.Margin = new Thickness(5, 10, 0, 0);
canvas1.Children.Add(x);
Canvas.SetLeft(x, 140);
Canvas.SetTop(x, 140);
}
标题位置是较小的文本框,而问题是较大的文本框。标题可以有任何数量的问题。所以,当我点击“添加问题”时,我需要它显示在最后一个问题文本框下方,当我点击添加标题时,我需要它显示在最后一个问题的下方,但位于不同的位置?
我删除了我的旧帖子,因为我想出了如何添加文本框。
答案 0 :(得分:2)
您不必像那样添加它们。
您应该使用TreeView或至少StackPanels并将它们添加到它们中。
此外,这一行:
x.Name = "new_textbox";
不正确。如果添加多个具有相同名称的元素,则会产生错误(它应该是唯一的)。您应该将该属性留空或动态地为它们命名。
我希望你有足够的信息,这些代码的方法是多方面的,而且非常长。
编辑:要在窗口中找到某个元素,请看这个问题: Get Absolute Position of element within the window in wpf