【发布时间】:2017-10-25 20:03:25
【问题描述】:
如何用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();
}
【问题讨论】:
-
您是否尝试简单地将新绘图添加(或插入)到 DrawingGroup 的 Children 集合?