<Window x:Class="_097打印不显示的元素.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="184" Width="269">
    <Grid Margin="5">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"></RowDefinition>
            <RowDefinition Height="Auto"></RowDefinition>
        </Grid.RowDefinitions>
        <StackPanel Orientation="Horizontal">
            <Label>Scale Percentage:</Label>
            <TextBox MinWidth="50" Name="txtScale">500</TextBox>
        </StackPanel>
        <Button Grid.Row="1" Name="btnPrint" Click="btnPrint_Click_1">Print</Button>
    </Grid>

</Window>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Navigation;
using System.Windows.Shapes;

namespace _097打印不显示的元素
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnPrint_Click_1(object sender, RoutedEventArgs e)
        {
            PrintDialog dialog = new PrintDialog();
            if (dialog.ShowDialog() == true)
            {
                Run run = new Run("This is a test of printing function");
                TextBlock visual = new TextBlock();
                visual.Inlines.Add(run);
                visual.Margin = new Thickness(15);
                visual.TextWrapping = TextWrapping.Wrap;
                double zoom;
                if (double.TryParse(txtScale.Text, out zoom))
                {
                    visual.LayoutTransform = new ScaleTransform(zoom / 100, zoom / 100);
                    Size pageSize = new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight);
                    visual.Measure(pageSize);
                    visual.Arrange(new Rect(0, 0, pageSize.Width, pageSize.Height));
                    dialog.PrintVisual(visual, "A Scaled Drawing");
                }
                else
                {
                    MessageBox.Show("Invalid Scale Value");
                }
            }
        }
    }
}

最新文章

  1. 爬虫研究-主要针对ali
  2. Mybatis整合Spring
  3. 【翻译】VSM 和触发器
  4. 报错Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your database and pytz installed?解决
  5. 一个基于WebGL的仿真3D水池有逼真的水波纹效果
  6. DDOS的攻击原理和防护指南
  7. Educational Codeforces Round 5 B
  8. Docker 生成Node.js web app(含端口映射)
  9. php 生成唯一的订单
  10. ProductHunt:创业公司产品猎场和秀场
  11. android .9图片制作与注意
  12. python 保存文本txt格式之总结篇,ANSI,unicode,UTF-8
  13. MicroPython支持的开发板:高性能、低成本创客首选
  14. Kibana使用高德地图
  15. JavaScript中的this的指代对象详解
  16. Java子线程中操作主线程Private级别数据
  17. day14(1)--递归、匿名函数、内置函数
  18. ajax访问服务器的基础格式写法
  19. php安装扩展的几种方法
  20. Python 函数 (关键字参数)

热门文章

  1. 文件上传api——MultipartFile
  2. SimpleDateFormat.format的简单使用小结
  3. 新技能 get —— Python 断点续传下载文件
  4. 【z03】Mayan游戏
  5. 配置SVN服务器
  6. NOIP模拟 path - 按二进制位分组
  7. nginx 和 tomcat 生产环境配置 建议和方法
  8. TensorFlow 实战(二)—— tf.train(优化算法)
  9. 卷积与反卷积、步长(stride)与重叠(overlap)
  10. 【16.52%】【codeforces 733C】Epidemic in Monstropolis