我想在 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(。不过感谢您的帮助!