根据位置在wpf中创建动态文本框

时间:2012-08-24 21:52:04

标签: c# wpf dynamic textbox controls

我正在尝试在WPF中动态创建文本框。非常重要的是,我可以灵活地确定文本框的位置 - 以像素级别。 我找到了许多使用stackpanel创建“运行时”文本框的答案 - 但是找不到如何根据指定的位置构造它。

文本框必须是“自动换行”,我正在使用按钮点击事件来创建文本框

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

 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);
    }

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

-Kev