2010-12-23 71 views
1

我有一个FlowDocumentPageViewer控件,我从后面的代码中填充。我从3-4项添加文本。我需要知道什么页面项目1,2,3 ...结束。获取FlowDocumentPageViewer的当前页面

这些项目将添加到FlowDocument的一个循环,然后在最后我有

flowDocumentPageViewer.Document = resultsDocument; 

然而,即便如此,如果我叫

flowDocumentPageViewer.PageCount 

我仍然得到0。如果我这样做某些事件如点击并在窗口呈现后打印上面的PageCount,它会打印出正确的值。但是,当我填充FlowDocument时,需要运行总计此值。我希望有人知道用文本度量或任何其他方式来解决这个问题。

+0

嗨,你是否设法解决这个问题?看到我有相同的要求,我也坚持这:) – FrieK 2011-10-13 13:32:44

回答

1

您别无选择,只能触发控件的(虚拟)呈现以获取此类信息。

最简单的方法是在FlowDocumentPageViewer上强制执行updateLayout(),但这意味着它会在获取可能不是您想要的信息之前显示结果。

,你也可以使用Arrange()方法,如果你不希望被显示的内容:使用此对你的控制,你应该得到更新的信息后

http://msdn.microsoft.com/en-us/library/system.windows.uielement.arrange.aspx

0

我有同样的问题,说实话,我仍然这样做。任何updateLayout()都没有帮助。现在,我使用计时器在分发给观众文档之后再次获取页面计数。工作正常。