首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VisualBrush做“懒惰评估”吗?

VisualBrush做“懒惰评估”吗?
EN

Stack Overflow用户
提问于 2011-11-07 22:46:11
回答 1查看 310关注 0票数 2

我在更多的迭代中创建FixedDocument (每次迭代一个页面),如下所示:

代码语言:javascript
复制
PrintDialog pr = new PrintDialog();
FixedDocument doc = new FixedDocument();

foreach(var i in a)
{
    // some changes of MaingGrid here
    ...
    //
    VisualBrush vb = new VisualBrush(this.MainGrid);
    FixedPage page = new FixedPage();
    page.Width = doc.DocumentPaginator.PageSize.Width;
    page.Height = doc.DocumentPaginator.PageSize.Height;
    Rectangle rec = new Rectangle();
    rec.Width = this.MainGrid.ActualWidth;
    rec.Height = this.MainGrid.ActualHeight;
    rec.Fill = vb;
    page.Children.Add(rec);
    PageContent content = new PageContent();
    ((IAddChild)content).AddChild(page);
    doc.Pages.Add(content);
}

pr.PrintDocument(doc.DocumentPaginator, "test");

在每次迭代中,我都会稍微修改一下MainGrid。因此,每个页面都应该包含MainGrid的实际状态。但打印的文档包含具有上次迭代相同内容的页面(换句话说,文档中的所有页面都处于最后状态)。对VisualBrush有什么“懒惰的评估”吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-07 23:06:47

在每次迭代中对VisualBrush调用.Freeze()。否则,它将始终是您指向的任何视觉的实时视图。

编辑:冻结不起作用,但您可以将画笔渲染为静态位图。请参阅http://blog.avanadeadvisor.com/blogs/markti/archive/2008/04/14/10888.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8038049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档