2012-08-24 36 views
0

我试图在WPF中动态创建文本框。这是非常重要的,我将有灵活性来确定文本框的位置 - 在像素级别。 我发现很多使用堆栈面板来创建“运行时”文本框的答案 - 但找不到如何根据指定的位置构建它。根据位置在wpf中创建动态文本框

文本框必须是“自动换行”,我用一个按钮单击事件创建文本框

这是现在的代码,我真不知道哪些方法或属性会很有帮助。 谢谢:)

private void button1_Click(object sender, RoutedEventArgs e) 
     { 
      TextBox x = new TextBox(); 
      x.Name = "new_textbox"; 
      x.TextWrapping= TextWrapping.Wrap; 
      x.VerticalScrollBarVisibility=ScrollBarVisibility.Visible; 
      x.AcceptsReturn = true; 
      x.Margin = new Thickness(5, 10, 0, 0); 
    } 

回答

1

你可能想将其放置在画布,如果你关心的文本框本身的像素位置。您需要使用x.SetValue(Canvas.LeftProperty,pixelX)[和.RightProperty等...]才能获得完全正确的位置。自己没有这样做,我猜想你需要把画布放在正确的Z顺序(顶部),并使其透明。根据z顺序,事件也可能有问题。祝你好运!

-Kev

3
TextBox x = new TextBox(); 
x.Name = "new_textbox"; 
x.TextWrapping= TextWrapping.Wrap; 
x.VerticalScrollBarVisibility=ScrollBarVisibility.Visible; 
x.AcceptsReturn = true; 
x.Margin = new Thickness(5, 10, 0, 0); 
HouseCanvas.Children.Add(x); 
Canvas.SetLeft(x, 20); 
Canvas.SetTop(x, 20);