在 WPF 中将新的文本块添加到画布时出错



我想在 WPF 中向我的画布添加文本。代码一直运行,直到我想在孩子的时候将 TextBlock 添加到画布上,给我这个:

"指定的元素已经是另一个元素的逻辑子元素。先断开它。

以下是相关代码:

private void txtbItemName_TextChanged(object sender, TextChangedEventArgs e)
        {
            TextBlock txtItemName = new TextBlock();
            txtItemName.Text = txtbItemName.Text;
            txtItemName.Margin = new Thickness(10, 10, 0, 0);
            cnvImage.Children.Remove(txtItemName);
            cnvImage.Children.Add(txtbItemName); //The error screen showed up when running this line
        }

您有错误。您正在尝试删除新项目并添加现有项目。

这是适合您的代码:

 TextBlock txtItemName = new TextBlock();
 txtItemName.Text = txtbItemName.Text;
 txtItemName.Margin = new Thickness(10, 10, 0, 0);
 cnvImage.Children.Remove(txtbItemName);
 cnvImage.Children.Add(txtItemName); 
我想

,您的 txtbItemName 似乎已经是 XAML 中某个元素的子元素(看不到您的 XAML(。 由于已在 XAML 中创建此元素,因此不允许将其添加到画布。

我找到了它:我确实试图放置一个已经存在的物体。我不小心放置了一个现有的textBOX(txtb(而不是textBLOCK(txt(。不过感谢您的帮助!

相关内容

最新更新