如何使用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();
}
初始渲染工作正常。现在当集合源发生变化时,我想在现有图纸上绘制更多元素。
问题在于,当我打开绘图组以获取绘图上下文时,所有内容都会被清除(并且只保留新绘图)。
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();
}
答案 0 :(得分:0)
感谢@Clemens的评论,我必须使用_backingStore.Append();
代替以保留以前的图纸。