2015-01-15 6 views
0

문서 뷰어 컨트롤에 매우 특정한 문제가 있습니다. 설명해 드리겠습니다 :WPF Documentviewer mouseinput에서 문서 만 올바르게 업데이트됩니다.

기본적으로 내 데이터 표현 상단에있는 보이지 않는 격자에있는 문서 뷰어가 있습니다. 특정 단추 (보고서를 생성하고 내 viewmodel의 명령에 바인딩 된)를 누르면 문서 뷰어 (고정 된 페이지 등)에 대한 보고서 및 xps 문서가 생성되고 documentviewer- 눈금이 표시로 설정됩니다. 지금까지 너무 좋아. 이상한 일과 내 문제의 근본 원인은 터치 스크린에서 터치 입력을 통해 버튼을 누르면 모든 것이 올바르게 작동하고 표시되는 것입니다.

마우스로 누르면 명령이 실행되고 문서 뷰어에 표시되지만 문서가 엉망으로 표시됩니다. 테이블이 엉망이고 사용자 정의 컨트롤의 크기가 정확하지 않습니다. 커서를 문서로 이동하거나 문서 뷰어 안의 영역을 클릭하면 모든 것이 정렬되어 올바르게 표시됩니다.

컨트롤에 초점을두고 터치와 클릭의 차이를 의심하고 컨트롤이 표시 될 때 레이아웃을 수동으로 업데이트하는 다양한 해킹을 시도했습니다. 성공하지 못했습니다.

또한 내 XPS 문서에는 generate-report 명령이 실행될 때 생성되는 usercontrols 및 grids가있는 레이아웃이 포함되어 있습니다. 흥미로운 부분은 페이지에 요소가 여러 개인 경우에만 사용자 정의 크기 조정이 무너지는 것입니다.

편집 : 가시성에 대한 변경 사항은 전혀 적용되지 않습니다. 문서 뷰어가 항상 보이고 바운드 된 문서가 업데이트되면 정확히 동일하게 작동합니다.

도움이나 아이디어를 주시면 감사하겠습니다.

+2

문제를 나타내는 코드를 제공하면 쉽게 대답 할 수 있습니다. – AndersNS

+0

코드가 직접 문제가 아닐 때 표시 할 코드를 결정하기가 쉽지 않습니다. 버튼을 클릭하고 터치하지 않으면 문서가 잘못 표시됩니다. 질문은 명령에 묶여있는 버튼을 클릭하고 만지는 것의 차이점 일 수도 있습니다. –

+0

코드가 문제가 아니라는 것을 어떻게 알 수 있습니까? –

답변

0

또 다른 한 주 동안 실험을 마친 후 마침내 해결책을 찾았습니다.

표시해야하는 FixedDocument가 만들어졌으며 이미 문서 뷰어에 할당 되었기 때문에 모든 문제와 이해할 수없는 레이아웃 - 마법이 발생했으며 그 다음에 작업자 스레드가 내용을 채웠습니다.

콘텐츠가 표시되었지만 마우스를 올려 놓거나 클릭하거나 문서 뷰어가 입력을 받으면 레이아웃이 업데이트되었습니다. 입력시 문서 뷰어는 할당 된 문서를 새로 고칩니다.

내 솔루션은 간단합니다. 콘텐츠를 추가하는 동안 "진행중인 작업"고정 문서를 만들고 모든 작업이 완료되면 뷰어에만 할당합니다.

콘텐츠 및 레이아웃이 올바르게 표시되지만 실제로는 콘텐츠가 실제로 표시되는 데 5-10 초 정도 걸리는 경우가 있습니다. 그러나 이것은 무거운 문서를로드 할 때의 성능 문제 일뿐입니다. 나는 문서가 완전히로드 될 때까지 어떤 종류의 로딩 알림을 빌드 할 수 있는지 알아 내려고 노력할 것이다.