在.NET 3.0中,提供了对XPS文件格式的全新支持。在WPF程序中,有一个控件是DocumentViewer。这里对它的使用做一个简要介绍

<Window x:Class="WpfApplication2.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="444" Width="640">
    <Grid>
        <DocumentViewer Margin="12,12,12,40" Name="documentViewer1" />
        <Button Height="23" HorizontalAlignment="Left" Margin="12,0,0,11" Name="button1" VerticalAlignment="Bottom" Width="75" Click="button1_Click">打开</Button>
    </Grid>
</Window>

后台代码

using System.Windows.Xps.Packaging;
using System.Windows.Forms;

namespace WpfApplication2
{
    /// <summary>
    /// Window1.xaml 的交互逻辑
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

private void button1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "XPS 文档(*.xps)|*.xps";
            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                XpsDocument doc = new XpsDocument(dialog.FileName, System.IO.FileAccess.Read);
                documentViewer1.Document = doc.GetFixedDocumentSequence();

}
        }
    }
}

注意,要使用该代码,必须是VS2008,并设置为目标框架为.NET 3.0或者.NET 3.5

还需要手工添加下面两个引用

这个ReachFramework.dll是在C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0这个目录下

WPF程序中的XPSDocumentViewer相关推荐

  1. 解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题

    解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 参考文章: (1)解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 ...

  2. 学习OpenCV(7) 在WPF程序中使用EmguCV

    在WPF程序中使用EmguCV 在WPF中使用EmguCV主要要处理的是ImageBox控件在WPF页面上的使用和如何利用WPF的双向数据绑定来向ImageBox上显示图片. 新建WPF应用 使用VS ...

  3. 在WPF程序中使用多线程技术

    在WPF应用程序中使用多线程的方式与Windows Forms很类似,区别在于,如果需要更新主线程UI上面的元素,需要用一个特殊的方法(this.Dispatcher.Invoke) 下面是一个简单的 ...

  4. 在WPF程序中打开网页:使用代理服务器并可进行JS交互

    本项目环境:使用VS2010(C#)编写的WPF程序,通过CefSharp在程序的窗体中打开网页.需要能够实现网页后台JS代码中调用的方法,从网页接收数据,并能返回数据给网页.运行程序的电脑不允许上网 ...

  5. 在 DotNetCore 3.0 程序中使用通用协议方式启动文件关联应用

    问题描述 在传统的基于 .NET Framework 的 WPF 程序中,我们可以使用如下代码段启动相关的默认应用: Copy # 启动默认文本编辑器打开 helloworld.txt Process ...

  6. 将传统 WPF 程序迁移到 DotNetCore 3.0

    介绍 由于历史原因,基于 Windows 平台存在着大量的基于 .NetFramework 开发的 WPF 和 WinForm 相关程序,如果将这些程序全部基于 DotNetCore 3.0 重写一遍 ...

  7. 发送linux键盘消息,在C#程序中模拟发送键盘按键消息

    using System.Runtime.InteropServices; 引入键盘事件函数 [DllImport("user32.dll")] public static ext ...

  8. WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里?

    在 WPF 程序中,我们有 Mouse.GetPosition(IInputElement relativeTo) 方法可以拿到鼠标当前相对于某个 WPF 控件的位置,也可以通过在 MouseMove ...

  9. 在winform程序中启动wpf窗体

    有时候需要在winform程序中利用wpf的许多优良特性,如何在其中启动wpf窗体呢? 前提:MainWindow.xaml是从别的地方copy到这个项目的,值得注意的是,除了MainWindow.x ...

最新文章

  1. 解决使用Dockerfile来build镜像时pip install遇到的BUG
  2. python横向柱状图-python绘制横向水平柱状条形图Bar
  3. Python 使用 UTF-8 编码(转)
  4. pom.xml增加依赖
  5. bootstrap的表单验证 vue_第45天:Web表单
  6. SpringBoot2.1.5 (9)--- GET 请求
  7. 关于RecyclerView条目复用
  8. 大数据与Hadoop的区别
  9. laydate点击输入框闪一下不见了_解决layui laydate 时间控件一闪而过的问题
  10. Lisp面面观松本行弘谈Lisp元编程
  11. 企业网络规划和设计方案
  12. 光纤跳线选用指南及光模块连接方案
  13. python大小写转换_Python字母大小写的转换(两种方法)
  14. 2020下半年教师资格证《幼儿综合素质》真题及答案
  15. Yolov3:win10下训练自己的数据(GPU版)(详细步骤)
  16. Android Studio修改apk命名
  17. 基于Python的QQ音乐音频图片搜索系统设计与实现 毕业论文+源码
  18. 展示一下香蕉派路由Android系统
  19. 地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
  20. (SEED-LabCross-Site Scripting (XSS) Attack Lab跨站脚本攻击实验

热门文章

  1. TreeMap源码分析,看了都说好
  2. apache 安装配置 以及php-fpm结合apache配置
  3. Forrester:全球供应商在中国处于领导地位 但本土供应商却在私有云市场蒸蒸日上...
  4. 由wsdl生成java,这是最原始的axis1
  5. Jquery通过Ajax方式来提交Form表单
  6. ubuntu配置ipv6
  7. ubuntu 12.04安装 jdk
  8. Android Tab 选项卡的简单实现
  9. 【自然框架】之“元数据”的威力
  10. 在Eclipse上安装Activiti插件