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,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 如何滾動到光標所在位置、滾動條操作 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM