zoukankan      html  css  js  c++  java
  • WPF:保存窗口当前状态截图方法

    在制作软件使用手册或者操作示范市,比较常用方式有截图和视频制作。如果软件内置当前状态的截图和操作视频的导出功能,则将极大简化这方面的工作。使用wpf编写的UI界面,截图的导出功能逻辑相对简单,通用的实现步骤如下:

    1、构建窗体与相关实现逻辑;

    2、构建窗体的封装容器,包含窗体视图、DrawingVisual字段和窗体大小字段;

    private readonly DrawingVisual dv;
    private readonly TestView previewControl;
    private readonly Rect controlSize;
    private readonly RenderTargetBitmap renderTargetBitmap;

    3、初始化dv的大小属性与窗体保持一致,并设置缩放比例:

    this.dv = new DrawingVisual();
    Size size = new Size(Width, Height);
    if (scale > 1.0)
    {
        this.dv.Transform = new ScaleTransform(1.0 / scale, 1.0 / scale);
        size.Width *= scale;
        size.Height *= scale;
    }
    this.controlSize = new Rect(size);

    4、保存截图到RenderTargetBitmap对象中

    using (DrawingContext drawingContext = this.dv.RenderOpen())
    {
          VisualBrush visualBrush = new VisualBrush(this.previewControl);
          drawingContext.DrawRectangle(visualBrush, null, this.controlSize);
    }

      this.renderTargetBitmap.Clear();
      this.renderTargetBitmap.Render(this.dv);

    通过构建通用的窗体封装容器,即可在需要该功能的所有软件中集成截图导出功能了。

  • 相关阅读:
    Windows10 ntoskrnl.exe占用大量的磁盘空间(100%)
    Windows10 正式企业版激活
    edit-distance
    climbing-stairs
    minimum-path-sum
    unique-paths-II
    unique-paths
    剑指 Offer 42. 连续子数组的最大和
    剑指 Offer 54. 二叉搜索树的第k大节点
    矩阵中的路径
  • 原文地址:https://www.cnblogs.com/dadream/p/4256505.html
Copyright © 2011-2022 走看看