0
DrawingGroupで部分的に描画する方法は?効率的なDrawing with DrawingGroup
ここは私がしたいことです。最初の要素を最初に描きたい。
private readonly DrawingGroup _backingStore = new DrawingGroup();
protected override void OnRender(DrawingContext dc)
{
base.OnRender(dc);
InitialRender();
dc.DrawDrawing(_backingStore);
}
private void InitialRender()
{
var dc = _backingStore.Open();
// draw with draw context.
_backingStore.Close();
}
初期レンダリングが正常に動作します。コレクションソースが変更されたときに、既存の図面にさらに多くの要素を描画したいと考えています。
問題は、描画コンテキストを取得するために図面を開くときに、すべてがクリアされ、新しい図面のみが残ってしまうという問題です。彼のコメントを@Clemensへ
private void ValueOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs args)
{
Render(args.NewItems);
}
private void Render(IList newItems)
{
var dc = _backingStore.Open(); // how to avoid clearing previous items?
// draw more stuff
dc.Close();
}
DrawingGroupのChildrenコレクションに新しいDrawingを追加(または挿入)しようとしましたか? – Clemens