안녕하세요
먼저 코드를 보여드리겠습니다.
private void DrawSiblingLine(UserControl node)
{
var dc = node.DataContext as NodeVM;
int x = dc.X;
int y = dc.Y;
int width = 0;
// 밑아래부터 수정요청
if (dc.Nodes.Count > 0)
{
for (int i = 0; i < dc.Nodes.Count; ++i)
{
var child = dc.Nodes[i];
var childdc = child.DataContext as NodeVM;
width += NodeVM.NODE_WIDTH + NodeVM.NODE_MARGIN_H;
if (childdc.Nodes.Count > 0)
{
for (int j = 0; j < childdc.Nodes.Count; ++j)
{
width += NodeVM.NODE_WIDTH + NodeVM.NODE_MARGIN_H;
}
}
}
}
else
{
width = 0;
}
// end 수정요청
if (width > 0)
{
var line = new Rectangle
{
Fill = Brushes.Black,
Height = 1,
Width = width,
Opacity = 0.3
};
Canvas.SetLeft(line, x + NodeVM.NODE_WIDTH / 2);
Canvas.SetTop(line, y + NodeVM.NODE_HEIGHT + NodeVM.NODE_HEIGHT_V);
CAN1.Children.Add(line);
}
for (int i = 0; i < dc.Nodes.Count; ++i)
{
var child = dc.Nodes[i];
DrawSiblingLine(child);
}
}
이렇게 노드 생성마다 탑노트부터 세로노드마다 가로트리선 추가하는 코드를 짰는데도
첨부된 사진처럼 자식노드부터 마지막노드오른쪽에 가로트리선이 계속 추가되네요
방법이 있을까요?