xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="PrintCustomPage" Height="300" Width="300"> this is a test
//File:Window.xaml.cs using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Globalization; namespace Printing { public partial class PrintCustomPage : System.Windows.Window { public PrintCustomPage() { InitializeComponent(); } private void cmdPrint_Click(object sender, RoutedEventArgs e) { PrintDialog printDialog = new PrintDialog(); if (printDialog.ShowDialog() == true) { DrawingVisual visual = new DrawingVisual(); using (DrawingContext dc = visual.RenderOpen()) { FormattedText text = new FormattedText(txtContent.Text, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface("Calibri"), 20, Brushes.Black); text.MaxTextWidth = printDialog.PrintableAreaWidth / 2; Point point = new Point(100,100); dc.DrawText(text, point); dc.DrawRectangle(null, new Pen(Brushes.Black, 1), new Rect(200, 200, 50,50)); } printDialog.PrintVisual(visual, "A Custom-Printed Page"); } } } }