我需要及时拍摄控件的快照,并将它们存储在一个FixedDocument中。问题是VisualBrush有些“懒”,当我将其添加到文档后,它不会自动计算。最终创建文档时,所有页面都包含相同(最后)状态的Control。虽然VisualBrush无法冻结,但是否还有其他机会呢?我希望在一页上拥有更多的快照,因此逐页生成文档不是我的解决方案。另外,将VisualBrush转换为位图也不行(我想保留它的向量)。简而言之 - 我需要以某种方式Freeze()VisualBrush。
for(;;)
{
FixedPage page = new FixedPage();
...
Rectangle rec = new Rectangle();
...
rec.Fill = vb;
page.Children.Add(rec);
PageContent content = new PageContent();
((IAddChild)content).AddChild(page);
doc.Pages.Add(content);
}