1. 程式人生 > >WPF中的簡單列印

WPF中的簡單列印

在WPF中,Grid、Canvas等介面的佈局都支援利用PrintDialog進行簡單列印。首先新建一個專案,Xmal程式碼如下:

<Window x:Class="Print.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid >
        <Grid Name="printGrid">
            <TextBlock Height="115" HorizontalAlignment="Left" Margin="79,31,0,0" Name="textBlock1" Text="Hello World" VerticalAlignment="Top" Width="322" FontSize="56" />
        </Grid>
        <Button Content="打䨰印®?" Height="23" HorizontalAlignment="Left" Margin="202,280,0,0" Name="print" VerticalAlignment="Top" Width="75" Click="print_Click" />
    </Grid>
</Window>

介面:


我們要實現的效果是點選列印按鈕後,可以自動打印出printGrid中的Hello World字串。新增按鈕點選事件:

private void print_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog dlg = new PrintDialog();
            if (dlg.ShowDialog() == true)
            {
                dlg.PrintVisual(printGrid, "Print Receipt");
            }
        }
PrintVisual有兩個引數,第一個是我們要進行列印的Grid,另一個是列印說明。執行程式,點選列印按鈕後彈出選擇印表機的對話方塊:

此時我們列印的是縱向排列,有時我們需要進行橫向列印時,需要新增如下程式碼:

private void print_Click(object sender, RoutedEventArgs e)
        {
            PrintDialog dlg = new PrintDialog();
            if (dlg.ShowDialog() == true)
            {
                dlg.PrintTicket.PageOrientation = PageOrientation.Landscape;
                dlg.PrintVisual(printGrid, "Print Receipt");
            }
        }

新增後發現提示“當前上下文不存在PageOrientation”,我們要新增ReachFramework.dll的引用。