我正在从循环中绘制一系列线条(省略不重要的内容):
for (int i = 0; i < TLS.NumEdges - 10; i++)
{
MSTLine.X1 = BlueArmy[TLS.EdgeList[i, 0]].Location.X;
MSTLine.Y1 = BlueArmy[TLS.EdgeList[i, 1]].Location.Y;
MSTLine.X2 = BlueArmy[TLS.EdgeList[i + 1, 0]].Location.X;
MSTLine.Y2 = BlueArmy[TLS.EdgeList[i + 1, 0]].Location.Y;
((MainWindow)System.Windows.Application.Current.MainWindow).AICanvas.Children.Add(MSTLine);
}
它会引发以下运行时错误: System.ArgumentException:“指定的Visual已经是另一个Visual的子级或CompositionTarget的根。”
我认为它不喜欢多个Children.Add呼叫。那么,从循环内部绘制一系列直线的正确方法是什么?由于其他原因,我宁愿不使用折线。
答案 0 :(得分:1)
GUI元素是类,而不是结构。您必须为要创建的每一行创建一个新的MSTLine实例。