구성했다 :인쇄 실버 라이트에서 우리는 응용 프로그램이이 같은 약 4
<Grid x:Name="LayoutRoot">
<ScrollViewer>
<Canvas x:Name="canvas">
<StackPanel> < Button /><Slider /><Button /></StackPanel>
<custom:Blob />
<custom:Blob />
<custom:Blob />
</Canvas>
</ScrollViewer>
</Grid>
각 물방울은 1 이상의 사각형, 선 및 텍스트 상자로 구성; 캔버스의 어느 곳에 나 배치됩니다.
나는이 LayoutRoot를 사용하여 문서를 인쇄 할 경우 :
PrintDocument pd = new PrintDocument();
pd += (s, pe) => { pe.PageVisual = LayoutRoot; };
pd.Print("Blobs");
... 그것은 인쇄 화면처럼 - 스크롤, 슬라이더, 볼 수있는 모양이 - 인쇄되어 있습니다.
PageVisual = canvas를 설정하면 아무 것도 인쇄되지 않습니다.
모든 blob 개체와 그 개체 만 인쇄하려면 어떻게해야합니까? 그것들을 다른 컨테이너에 복사하고 해당 컨테이너를 PageVisual에 제공해야합니까? ViewBox를 사용하여 한 페이지에 모두 맞출 수 있습니까? 게시물을 읽는 동안 마음에 와서 어떤 포인터에 대한
감사합니다 ....
도움, 고마워. Canvas의 영역 (직사각형)을 인쇄 할 방법을 지정하는 방법이있을 것입니다 ...? 또는 비슷하게 StartPrint 이벤트에서 Canvas의 크기를 모든 개체의 최소 경계 사각형으로 변경 한 다음 EndPrint 이벤트에서 해당 크기를 복원합니다. 마지막으로, ViewBox는 한 페이지에 맞도록 Canvas를 변형 할 수 있습니까? – Number8
확실치 않지만,이 문제를 해결하기 위해 챌린지가 없었지만, 1 페이지 이상 있고 내용이 적합하지 않다고 지정하면 무언가를해야합니다. 하지만 실제로 아무것도 수행하지 않으면 인쇄하기 전에 그룹화 캔버스의 크기를 조정 한 다음 나중에 인쇄를 마친 후에 크기를 다시 조정해야 할 수도 있습니다. – texmex5