0

通常の TreeView は私のニーズに合わないため、独自の TreeView を作成し、TreeView から継承し、TreeViewItems 間に線を引きます。このようなものここに画像の説明を入力

ここまでは順調ですが、ツリーを作成して描画した後で ReDraw (追加行を削除) したいと思います。現在、線を描画するための DrawingContext を既に提供している OnRender メソッドですべてを行っています。

            //Point connections from the parent to the childs.
            Point parentStart = parentCenter;
            Point parentEnd = new Point(parentCenter.X, middleParentChild);
            Point childEnd = new Point(childCenter.X, middleParentChild);
            Point childStart = childCenter;

            drawingContext.DrawLine(Pen, parentStart, parentEnd);
            drawingContext.DrawLine(Pen, parentEnd, childEnd);
            drawingContext.DrawLine(Pen, childEnd, childStart);

            //recursivly do this for all children
            DrawConnections(Pen, drawingContext, item);

しかし、コントロールが一度レンダリングされた後は DrawingContext にアクセスできません。ローカル変数に保存されているため、DrawingContext が既に破棄されているため、既に描画されている図形を削除したり、何も再描画したりすることはできません。

4

1 に答える 1