У нас есть приложение, структурированное примерно так:
<Grid x:Name="LayoutRoot">
<ScrollViewer>
<Canvas x:Name="canvas">
<StackPanel> < Button /><Slider /><Button /></StackPanel>
<custom:Blob />
<custom:Blob />
<custom:Blob />
</Canvas>
</ScrollViewer>
</Grid>
Каждый BLOB-объект состоит из 1 или более прямоугольников, линий и текстовых полей; они расположены где угодно на холсте.
Если я распечатываю документ с использованием LayoutRoot:
PrintDocument pd = new PrintDocument();
pd += (s, pe) => { pe.PageVisual = LayoutRoot; };
pd.Print("Blobs");
... это похоже на экран печати - полосы прокрутки, ползунки, видимые капли - печатаются.
Если я установлю PageVisual = canvas, ничего не печатается.
Как я могу получить все объекты BLOB-объектов и только эти объекты для печати? Нужно ли мне копировать их в другой контейнер и передавать этот контейнер PageVisual? Могу ли я использовать ViewBox, чтобы убедиться, что все они помещаются на одной странице?
Спасибо за любые указатели ....