title: Printing in Silverlight 4
body: <p>We have an application structured roughly like this:  </p>
  
  <pre><code>&lt;Grid x:Name="LayoutRoot"&gt;
    &lt;ScrollViewer&gt;
  &lt;Canvas x:Name="canvas"&gt;
    &lt;StackPanel&gt; &lt; Button /&gt;&lt;Slider /&gt;&lt;Button /&gt;&lt;/StackPanel&gt;
    &lt;custom:Blob /&gt;
    &lt;custom:Blob /&gt;
    &lt;custom:Blob /&gt;
  &lt;/Canvas&gt;
    &lt;/ScrollViewer&gt;
  &lt;/Grid&gt;
  </code></pre>
  
  <p>Each Blob consists of 1 or more rectangles, lines, and text boxes; they are positioned anywhere on the canvas.</p>
  
  <p>If I print the document using the LayoutRoot:</p>
  
  <pre><code>PrintDocument pd = new PrintDocument();
  pd += (s, pe) =&gt; { pe.PageVisual = LayoutRoot; };
  pd.Print("Blobs");
  </code></pre>
  
  <p>... it is like a print-screen -- the scrollbars, the sliders, the blobs that are visible -- are printed.</p>
  
  <p>If I set PageVisual = canvas, nothing is printed.</p>
  
  <p>How can I get all the blob objects, and just those objects, to print?  Do I need to copy them into another container, and give that container to PageVisual?  Can I use a ViewBox to make sure they all fit on one page?  </p>
  
  <p>Thanks for any pointers....</p>