0

我正在尝试在 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);
    }
4

2 回答 2

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);
于 2012-08-24T22:51:42.370 回答
1

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

-凯夫

于 2012-08-24T22:49:43.370 回答