我想在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
}
答案 0 :(得分:3)
您有错误。您正尝试删除新项目并添加现有项目。
以下是适合您的正确代码:
TextBlock txtItemName = new TextBlock();
txtItemName.Text = txtbItemName.Text;
txtItemName.Margin = new Thickness(10, 10, 0, 0);
cnvImage.Children.Remove(txtbItemName);
cnvImage.Children.Add(txtItemName);
答案 1 :(得分:2)
我认为你的txtbItemName已经是你想要的XAML元素的子节点(无法看到你的XAML)。因为你已经在你的xaml中创建了这个元素,所以它不会让你把它添加到我认为的画布中。
答案 2 :(得分:-1)
我找到了它:我确实试图放置一个已存在的物体。我不小心放置了一个现有的textBOX(txtb)而不是textBLOCK(txt)。谢谢你的帮助!