在WPF中单击按钮时创建文本框

本文关键字:创建 文本 按钮 WPF 单击 | 更新日期: 2023-09-27 18:12:47

我已经搜索了一些与此相关的stackoverflow线程,但我在代码PLZ审查我的代码有问题,并告诉我问题在哪里,我卡住了,不在哪里是问题,我是新的,请帮助我出来

 public partial class MainWindow : Window
 {
    Grid MainGrid = new Grid();
    public MainWindow()
    {
       InitializeComponent();
    }
    private void button_Click(object sender, RoutedEventArgs e)
    {
        TextBox dynamicTextBox = new TextBox();
        dynamicTextBox.Text = "Type Partnumber";
        Grid.SetRow(dynamicTextBox, 1);
        Grid.SetColumn(dynamicTextBox, 0);
        this.MainGrid.Children.Add(dynamicTextBox);
    }
  }

在WPF中单击按钮时创建文本框

通过使用button_Click事件,您将动态文本框添加到MainGrid,该代码看起来很好。但问题是,this.MainGrid不是在当前的UI,它类似于动态创建的TextBox,因为你已经定义了它在代码后面(见上面的定义构造函数Grid MainGrid = new Grid();)。

考虑canContainer是在xaml中定义的画布,如下所示,

<Canvas Height="319" Margin="0"
        Width="517"
        Name="canContainer"/>

要克服这个问题,您可以选择以下任何一种方法。

1。将MainGrid添加到UI中。它会将网格添加到画布上,记住已经添加到网格中的动态文本框。这意味着代码应该像这样——>

 this.canContainer.Children.Add(MainGrid);

2。将dynamicTextBox添加到UI中存在的任何其他父级

this.canContainer.Children.Add(dynamicTextBox); 

如果您使用此方法,则不需要定义和添加MainGrid