Print Visual(Canvas) : Canvas « Windows Presentation Foundation « VB.Net






Print Visual(Canvas)

Print Visual(Canvas)
     
<Window x:Class="Printing.PrintVisual"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="PrintVisual" Height="259" Width="282">
    <StackPanel>
      <Canvas Name="canvas">
        <TextBlock Canvas.Top="50" Canvas.Left="20" FontSize="25" FontWeight="Bold">Hello There</TextBlock>

        <Path Fill="Yellow" Stroke="Blue" Margin="5" Canvas.Top="10" Canvas.Left="10" >
          <Path.Data>
            <GeometryGroup>
              <RectangleGeometry Rect="0 0 100 100"></RectangleGeometry>
              <EllipseGeometry Center="50 50" RadiusX="35" RadiusY="25"></EllipseGeometry>
            </GeometryGroup>
          </Path.Data>
        </Path>
      </Canvas>
      <Button Grid.Row="3" Click="cmdPrint_Click">Print</Button>
    </StackPanel>
</Window>

//File:Window.xaml.vb

Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Shapes

Namespace Printing
  Public Partial Class PrintVisual
    Inherits System.Windows.Window

    Public Sub New()
      InitializeComponent()
    End Sub

    Private Sub cmdPrint_Click(sender As Object, e As RoutedEventArgs)
      Dim printDialog As New PrintDialog()

      If printDialog.ShowDialog() = True Then
        Dim zoom As Double = 30

        canvas.Background = Brushes.LightSteelBlue

        canvas.LayoutTransform = New ScaleTransform(zoom / 100, zoom / 100)

        Dim pageSize As New Size(printDialog.PrintableAreaWidth - 20, printDialog.PrintableAreaHeight - 20)

        canvas.Measure(pageSize)
        canvas.Arrange(New Rect(10, 10, pageSize.Width, pageSize.Height))

        printDialog.PrintVisual(canvas, "A Scaled Drawing")

        canvas.Background = Nothing
        canvas.LayoutTransform = Nothing
      End If
    End Sub
  End Class
End Namespace

   
    
    
    
    
  








Related examples in the same category

1.Align Button along with Canvas positionAlign Button along with Canvas position
2.Using a Canvas to absolutely position elementsUsing a Canvas to absolutely position elements
3.Simple CanvasSimple Canvas
4.StackPanel Demo and CanvasStackPanel Demo and Canvas
5.Canvas with MinHeight and MinWidthCanvas with MinHeight and MinWidth
6.Draws a Path element within a CanvasDraws a Path element within a Canvas
7.Draws several Line elements within a CanvasDraws several Line elements within a Canvas
8.Draws several Polyline elements within a CanvasDraws several Polyline elements within a Canvas
9.Rectangle with Fill and Canvas positionRectangle with Fill and Canvas position
10.Custom Coordinates by transforming the CanvasCustom Coordinates by transforming the Canvas
11.Draw path on a CanvasDraw path on a Canvas
12.Use Canvas coordinationUse Canvas coordination
13.Use Canvas to layout Buttons and LabelsUse Canvas to layout Buttons and Labels
14.Position UI Elements Using Exact CoordinatesPosition UI Elements Using Exact Coordinates
15.Pixel SnappedPixel Snapped
16.Positioning Rectangle on a CanvasPositioning Rectangle on a Canvas
17.Canvas inside canvas, showing relative absolute positioningCanvas inside canvas, showing relative absolute positioning
18.Aligning elements using multiple attached properties of CanvasAligning elements using multiple attached properties of Canvas
19.Layer elements in a Canvas elementLayer elements in a Canvas element
20.Use the four attached properties of the Canvas element: Bottom, Left, Right, and TopUse the four attached properties of the Canvas element: Bottom, Left, Right, and Top
21.Canvas PreviewMouseDown action and MouseDown actionCanvas PreviewMouseDown action and MouseDown action
22.Handles the MouseDown event on the CanvasHandles the MouseDown event on the Canvas
23.StatusBar inside a CanvasStatusBar inside a Canvas
24.Drag Items from a List and Drop Them on a CanvasDrag Items from a List and Drop Them on a Canvas
25.Get position on a Canvas with Canvas.GetLeftGet position on a Canvas with Canvas.GetLeft
26.Use a Thumb to resize a Canvas control by responding to the DragDelta event.Use a Thumb to resize a Canvas control by responding to the DragDelta event.
27.Canvas Positioning Properties SampleCanvas Positioning Properties Sample
28.Canvas.SetTopCanvas.SetTop
29.Canvas.SetBottomCanvas.SetBottom
30.Canvas.SetRightCanvas.SetRight
31.Add buttons to a Canvas with codeAdd buttons to a Canvas with code
32.Set control position for CanvasSet control position for Canvas