2012-08-08 2 views
0

뭔가 잘못되었을 경우 WPF에서 새로 생겼습니다. 협력 해주십시오. 여기 전문가의 아이디어가 필요합니다.WPF 양식의 다음 페이지로 내용을 이동하는 방법

양식에있는 필드를 채운 후 WPF 양식에 일부 내용을 표시해야하는 응용 프로그램에서 작업하고 있습니다. 같은 양식에 인쇄 옵션도 있습니다.

이 이미지를 확인하십시오. 이것은 빨간색 블록의 부분이 런타임에 생성됩니다. 인쇄 버튼을 클릭하면 용지의 보이는 부분 만 표시되고 나머지 부분은 건너 뜁니다.

WPF Form

문제 : 나는 인쇄를 클릭하면 다음 페이지로 스크롤 아래 양식의 나머지 부분을 이동할 수있는 방법 . 내가 인쇄를 클릭하면 내가 다음 페이지에만 이 나머지 부분을 전환 할 수 있습니다 partially.How

예를를 들어 지정된 이미지에서 우리는이 황소의 눈을 완전히이 다음에 볼 수 있습니다.

답변

0

this link.This를 따르십시오 내가이 기본적인 세부 사항이 link.I는 HTTP에서 찾고 있어요 위해 WPF에서 인쇄와

2

대답은 매우 쉽습니다. 인쇄를하기 위해 창을 의지하지 말고 원하는 시각적 효과를 만들어보십시오.
예를 들어 동그라미를 동적으로 생성하는 등의 기능이 있어야 패널에 추가 할 수 있습니다. 패널을 인쇄하는 것입니다.
원하는 경우 원하는대로 모든 데이터를 넣은 다음 새 창을 동적으로 빌드 한 다음 창을 인쇄 할 수 있습니다. 이 방법의 장점은 내용 (헤더/바닥 글을 원할 경우)이 더 유연하고 디버그를 위해 내용을 쉽게 볼 수 있다는 것입니다. Window 내용이 동적 인 경우에도 코드로 너무 많은 xaml을 수행하지 않도록 인쇄를위한 기본 창을 가질 수 있습니다 (expl : Print Window의 생성자에서 설정 한 PrintTitle 속성에 TextBox를 바인딩 할 수 있음) ...).
화면에 렌더링되지 않은 비주얼은 인쇄되지 않습니다. 여기, 코드에 전환이 큰 사이트에서이 기사 좀보고, 공통의 문제를 방지하기 위해, 반드시 :
1) 경우 :
http://www.switchonthecode.com/tutorials/printing-in-wpf

편집 (코멘트에서 질문에 대한 답변) 당신은 황소 눈의 수를 고정시키고, 단지 그 숫자에 대해 하나의 창을 만들고 그것을 인쇄하십시오, 이것은 더 쉬운 waaaay입니다.
2) 행 대신 페이지에 비주얼을 입력하려면 너비/높이 페이지에 의존해야합니다. 중요한 것은 컨트롤 크기와 페이지 크기입니다. 이 예제에서는 LineHeight, LineWidth 크기의 컨트롤을 OnRender로 작성합니다. 동일한 작업을 수행하십시오. (제어 높이 + 여백) * NumberOfControlPerPage < 페이지 높이와 같은 많은 제어 라인을 넣으십시오.
그런 다음 Rectangle + text로 만든 행 대신 컨트롤을 렌더링하도록 OnRender를 변경해야합니다. 가로 StackPanels에 두 개씩 컨트롤을 두 개 넣은 다음 해당 StackPanel을 세로 StackPanel에 압축 한 다음 렌더링합니다. 컨트롤이 마지막으로 렌더링 된 각 페이지를 추적하고 다음 컨트롤에서 렌더링을 다시 시작해야합니다.

+0

감사 빈센트 어떤 일을 할 수 world.Using 웹에서 검색 한 후 가지고있는 기본입니다 : //www.switchonthecode.com/tutorials/wpf-printing-part-2-pagination. 행 대신 usercontrol을 추가하는 방법을 알려주시겠습니까? – Sunny

+0

답장 ihn edit. – GameAlchemist

+0

도움을 주신 @ Vincent에 감사드립니다. 마지막으로 대답을 얻었습니다. 감사합니다. 많이 감사합니다. – Sunny

관련 문제