我有一个FlowDocumentPageViewer控件,我从后面的代码填充。我正在添加3-4项文字。我需要知道1,2,3 ...页面的内容是什么。
这些项目在循环中添加到FlowDocument中,然后在最后我有
flowDocumentPageViewer.Document = resultsDocument;
然而,即便如此,如果我打电话
flowDocumentPageViewer.PageCount
我仍然得到0.如果我执行某些事件,例如点击并在窗口渲染后打印上面的PageCount,它会打印正确的值。但是,当我填充FlowDocument时,我需要运行总计这个值。我希望有人知道文字指标的某种技巧或任何其他方式可以解决这个问题。
答案 0 :(得分:1)
您别无选择,只能触发控件的(虚拟)渲染以获取此类信息。
最简单的方法是在FlowDocumentPageViewer上强制updateLayout()
,但这意味着它会在您获得可能不是您想要的信息之前显示结果。
如果您不希望显示内容,也可以使用Arrange()
方法:
http://msdn.microsoft.com/en-us/library/system.windows.uielement.arrange.aspx
在您的控件上使用此功能后,您应该获得更新的信息。
答案 1 :(得分:0)
我有同样的问题,老实说我还是这样做的。任何updateLayout()都没有帮助。现在我使用计时器在我决定向观众提供文件后的一秒钟内获取页数。工作正常。