Püf Noktası #81 - Silverlight 4 Tüm Ekranı Yazdırma

Pazartesi, 22 Mart 2010 10:31 by ikivanc
Silverlight 4'ün yeniliklerinden birisi de silverlight sayfalarını veya sadece belirli bileşenleri yazıcıya gönderip yazdırma işlemlerinin gerçekleştirilebiliyor olması.

Bunun için C# tarafında aşağıdaki kodun print button'unun altında yazılı olması yeterlidir. Tüm XAML sayfanın yazdırılması için LayoutRoot 'u kod tarafında seçmemiz yeterli olacaktır.

private void btn_print_Click(object sender, RoutedEventArgs e)
{
    PrintDocument ekraniyazdir = new PrintDocument();
    ekraniyazdir.PrintPage += 
        new EventHandler<PrintPageEventArgs>(ekraniyazdir_PrintPage);
    ekraniyazdir.Print(null);
}
 
void ekraniyazdir_PrintPage(object sender, PrintPageEventArgs e)
{
    e.PageVisual = this.LayoutRoot;
}

Buradaki yazdırılacak alan ekraniyazdir_PrintPage içerisinde tanımlanan e.PageVisual ile belirlenmektedir. Örnekte tüm proje ekranını seçtik.

Yazma işlemimiz de aşağıdaki gibi olacaktır.

Print Tuşuna bastıktan sonra karşımıza yazıcı seçenekleri gelmektedir. Ekranımızın nasıl çıktı verdiğine bakmak için Microsoft XPS sanal yazıcısı ile çıktımızı alalım.
 


Görüldüğü gibi sayfamızda bulunan bütün bileşenleri yazdırmış olduk ekran görüntüsü olarak.

Kolay gelsin.