1. 程式人生 > WINDOWS開發 >WPF 列印操作之PrintDialog

WPF 列印操作之PrintDialog

一、WPF 列印操作之PrintDialog

在WPF 中可以通過PrintDialog類方便的實現應用程式列印功能。

PrintDialog可以直接列印Wpf控制元件或者頁面,將呈現結果使用Windows系統預設印表機,執行列印。

            PrintDialog dialog = new PrintDialog();
            //顯示列印框,選擇份數和印表機
            if (dialog.ShowDialog() == true)
            {
                //  dialog.PrintVisual(printArea,"Print Test");
dialog.PrintVisual(richText,"測試"); } //直接列印 // dialog.PrintVisual(richText,"測試");

關於PrintDialog的更多用法請參考:

https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.controls.printdialog?redirectedfrom=MSDN&view=netcore-3.1

二、程式碼示例

1.wxml

<Window x:Class
="CoreWpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local
="clr-namespace:CoreWpfApp1" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <Canvas x:Name="printArea"> <Ellipse Canvas.Left="192" Canvas.Top="24" Height="100" Stroke="Black" Width="200"> <Ellipse.Fill> <LinearGradientBrush> <GradientStop Color="#FFAD0FC7" Offset="0" /> <GradientStop Color="#FF3359AD" Offset="1" /> </LinearGradientBrush> </Ellipse.Fill> </Ellipse> <TextBlock FontSize="20" FontWeight="Bold" Foreground="White" Canvas.Left="198" Canvas.Top="63" Height="33"> Visual Studio 2010</TextBlock> <Image Source="vs2010.jpg" Height="52" Width="90" Canvas.Left="388" Canvas.Top="0" /> <RichTextBox x:Name="richText" Height="127" Width="315" Canvas.Left="433" Canvas.Top="103" TextChanged="RichTextBox_TextChanged"> <FlowDocument> <Paragraph> <Run Text="RichTextBox"/> </Paragraph> <Paragraph> <Run Text="RichTextBox"/> </Paragraph> <Paragraph> <Run Text="RichTextBox"/> </Paragraph> </FlowDocument> </RichTextBox> <Button Content="Button" Canvas.Left="207" Canvas.Top="230" Height="52" Width="137" Click="Button_Click_1"/> </Canvas> <Button Content="列印測試" HorizontalAlignment="Left" Margin="196,143,0" VerticalAlignment="Top" Height="60" Width="132" Click="Button_Click"/> </Grid> </Window>

2.C#

private void Button_Click(object sender,RoutedEventArgs e)
{
    PrintDialog dialog = new PrintDialog();
    //顯示列印框,選擇份數和印表機
    if (dialog.ShowDialog() == true)
    {
        //  dialog.PrintVisual(printArea,"Print Test");
        dialog.PrintVisual(richText,"測試");
    }

    //直接列印
    // dialog.PrintVisual(richText,"測試");
}

技術分享圖片

更多:

WPF 面板之MathApps.Metro UI庫

WPF RichTextBox滾動條自動滾動例項、文字自動滾動例項

WPF RichTextBox 如何滾動到游標所在位置、滾動條操作