2010-12-23 12 views
1

코드 뒤에서 채울 FlowDocumentPageViewer 컨트롤이 있습니다. 3-4 개 항목의 텍스트를 추가하고 있습니다. 어떤 페이지 항목 1,2,3 ...이 끝나는 지 알아야합니다. 내가 할 경우 내가 여전히 0을 얻을FlowDocumentPageViewer의 현재 페이지 가져 오기

이러한 항목은 루프에 FlowDocument에 추가됩니다 다음 말에 난 그때

flowDocumentPageViewer.PageCount 

를 호출하는 경우, 그러나

flowDocumentPageViewer.Document = resultsDocument; 

이 일부 이벤트를 클릭하고 창을 렌더링 한 후 위 PageCount를 인쇄하면 올바른 값이 인쇄됩니다. 그러나 FlowDocument를 채울 때마다이 값의 누적 합계가 필요합니다. 나는 누군가가 텍스트 메트릭이나 이것이 해결 될 수있는 어떤 방법으로 어떤 종류의 트릭을 알고 있기를 바라고있다.

+0

안녕하세요,이 문제를 해결할 수 있었습니까? 내가 같은 요구 사항을 가지고 있고 또한 이것에 붙어있는 것처럼 보이는 것 :) – FrieK

답변

1

이 종류의 정보를 얻기 위해 컨트롤의 (가상) 렌더링을 트리거 할 수밖에 없습니다.

가장 쉬운 방법은 FlowDocumentPageViewer에서 updateLayout()을 강제로 실행하는 것입니다. 그러나 이것은 사용자가 원하는 정보가 나오기 전에 결과를 보여줍니다.

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

를 업데이트 된 정보를 얻을해야 컨트롤에이 사용 후 : 당신이 내용을 표시하지 않으려면

당신은 또한 Arrange() 방법을 사용할 수 있습니다.

0

나는 똑같은 문제가 있었지만 여전히 솔직하게 말하고있다. 어떤 updateLayout()도 도움이되지 않았습니다. 이제 타이머를 사용하여 뷰어에게 문서화하도록 요청한 후 pagecount를 1 초 후에 얻습니다. 잘 작동합니다.

관련 문제