2019-1-10-WPF-使用-RenderTargetBitmap-快速截图出现-COMException-提示
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
WPF 使用 RenderTargetBitmap 快速截图出现 COMException 提示
|
lindexi
|
2019-01-10 14:58:43 +0800
|
2019-01-10 14:46:27 +0800
|
WPF
|
本文告诉大家一个最简单步骤让 RenderTargetBitmap 出现 COMException 提示
只需要在界面添加一个 ListView 绑定图片,然后在后台不断刷新列表就可以
<ListView Margin="10,10,10,10" ItemsSource="{Binding DeagernereDechuno}">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="10,10,10,10">
<Image Source="{Binding}"></Image>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在后台创建 DeagernereDechuno 列表
public ObservableCollection<ImageSource> DeagernereDechuno { get; set; }=new ObservableCollection<ImageSource>();
在 Load 之后调用函数 WarwairJorkasou 不断截图
public MainWindow()
{
InitializeComponent();
DataContext = this; Loaded += (s, e) =>
{
WarwairJorkasou();
};
}
在 WarwairJorkasou 调用循环进行截图,很快就可以看到下面提示
System.Runtime.InteropServices.COMException: MILERR_WIN32ERROR
异常堆栈
System.Runtime.InteropServices.COMException (0x88980003): MILERR_WIN32ERROR (异常来自 HRESULT:0x88980003)
在 System.Windows.Media.Imaging.RenderTargetBitmap.FinalizeCreation()
在 System.Windows.Media.Imaging.RenderTargetBitmap..ctor(Int32 pixelWidth, Int32 pixelHeight, Double dpiX, Double dpiY, PixelFormat pixelFormat)
截图的代码
private async void WarwairJorkasou()
{
var ran = new Random(); while (true)
{
await Task.Delay(10).ContinueWith(_ =>
{
DeagernereDechuno.Clear();
var n = ran.Next(int.MaxValue / 10);
for (int i = n; i < n + 1000; i++)
{
try
{
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen(); var text = new FormattedText(i.ToString(),
CultureInfo.GetCultureInfo("zh-cn"),
FlowDirection.LeftToRight,
new Typeface("Verdana"),
36, Brushes.Black);
drawingContext.DrawText(text,
new Point(0, 0)); drawingContext.Close(); var image = new RenderTargetBitmap((int) text.Width, (int) text.Height, 96, 96, PixelFormats.Pbgra32);
image.Render(drawingVisual); DeagernereDechuno.Add(image);
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}, TaskScheduler.FromCurrentSynchronizationContext());
}
}
运行程序大概在 300M 左右就会出现 COMException 提示
System.Runtime.InteropServices.COMException (0x88980003): MILERR_WIN32ERROR (Exception from HRESULT: 0x88980003)
2019-1-10-WPF-使用-RenderTargetBitmap-快速截图出现-COMException-提示的更多相关文章
- Visual Studio 2019 v16.10 和 v16.11 Preview 1 现已推出!
Visual Studio 2019 v16.10有什么新功能? 我们很高兴地宣布Visual Studio 2019 v16.10 GA 和 v16.11 preview 1发布.此版本使我们的主题 ...
- mac文本操作小技巧——2019年10月17日
声明:看的别人博主写的,自己整理的,非原创,只是自用. mac文本操作技巧 官方指导文档:https://support.apple.com/zh-cn/HT201236 1.光标移动 1.1 行首. ...
- S01-晓亮的电脑软件安装过程文档 腾讯QQ 595076941 2019年10月
S01-晓亮的电脑软件安装过程文档 腾讯QQ 595076941 2019年10月 本文档的创建作者的腾讯QQ聊天号码是 595076941 S02-电脑软件安装过程中不要随意关闭窗口除非必需关闭窗口 ...
- Java学习之JDBC 2019/3/10
Java学习之JDBC 大部分的程序都是用来通过处理数据来达到人们预期的效果,数据是粮食,没有数据操作的程序就像helloworld程序一样没有用处.因此数据库操作是重中之重,是程序发挥功能的基石,j ...
- 【实用】如何在windows下快速截图?
如何在windows下快速截图? 快速截图是很多人的需求.截图的工具和方案也很多,但是,这里给出一个通用的,被大众认为最高效的一个解决方案. 我们都知道键盘上有一个"prt sc" ...
- SPSS 2019年10月24日 今日学习总结
2019年10月24日今日课上内容1.SPSS掌握基于键值的一对多合并2.掌握重构数据3.掌握汇总功能 内容: 1.基于键值的一对多合并 合并文件 添加变量 合并方法:基于键值的一对多合并 变量 2. ...
- 终端、mac等小技巧——2019年10月18日
1.新建finder窗口 cmd+N 2.查看文件夹结构 brew install tree tree命令行参数(只实用与安装了tree命令行工具): -a 显示所有文件和目录. -A 使用ASNI绘 ...
- Linux自用指令——2019年10月23日
1.ls ls命令是列出目录内容(List Directory Contents)的意思.运行它就是列出文件夹里的内容,可能是文件也可能是文件夹. ls -a 列出目录所有文件,包含以.开始的隐藏文件 ...
- Gitbook环境搭建及制作——2019年10月24日
1.gitbook介绍 GitBook 是一个基于 Node.js 的命令行工具,支持 Markdown 和 AsciiDoc 两种语法格式,可以输出 HTML.PDF.eBook 等格式的电子书.可 ...
- 开机时自动启动的AutoHotkey脚本 2019年10月09日
;;; 开机时自动启动的AutoHotkey脚本 2019年10月09日;; http://www.autoahk.com/archives/16600; https://www.cnblogs.co ...
随机推荐
- latex 引用文献 bib
study from : https://jingyan.baidu.com/article/925f8cb8bce1f0c0dce0564f.html 寻找文献 谷歌学术 from: https:/ ...
- jmeter遇到的问题:java.net.ConnectException: Connection refused: connect
1.使用jmeter执行脚本,在察看结果树的的响应数据中看到的错误提示如下: java.net.ConnectException: Connection refused: connect at jav ...
- leetcode-219-存在重复元素②
题目描述: 第一次提交:超时 class Solution: def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool ...
- 正则表达式 判断内容是否为合法的url
var strUrl= "^((https|http|ftp|rtsp|mms)?://)" + "?(([0-9a-z_!~*'().&=+$%-]+: )?[ ...
- myeclipse CTRL+1功能
有时候,在myeclipse或者eclipse中自动编译代码有错误,我们把鼠标放在错误一行能够自动显示出问题原因,但是有时显示问题让人有些匪夷所思,不知所云何物. 此时可以使用<ctrl> ...
- hdu多校第四场1001 (hdu6614) AND Minimum Spanning Tree 签到
题意: 一个完全图,某两点边权为这两点编号之按位与,求最小生成树,输出字典序最小的. 题解: 如果点数不为$2^n-1$,则每一点均可找到一点,两点之间边权为0,只需找到该点二进制下其最左边的0是第几 ...
- MyBatis基础-CRUD
一.mybatis 环境搭建步骤 第一步:创建 maven 工程第二步:导入坐标第三步:编写必要代码(实体类和持久层接口)第四步:编写 SqlMapConfig.xml第五步:编写映射配置文件第六步 ...
- win7下mysql5.5与mysql5.6同时安装
5.5己正常的情况下,用官方下载的安装包总是不成功,用的官方解压版5.6.44 1.复制my-default.ini到my.ini,只需要改端口就行了,设置base-dir/data-dir反而无法启 ...
- 记录一次hexo托管到coding失败,页面总是404,可是相同的代码托管到github是没问题的。
文章目录 问题描述: 问题原因: 问题解决 2019.1.23 问题,coding又挂了. 弃疗 个人博客:https://mmmmmm.me 源码:https://github.com/dataiy ...
- python 中的 用chr()数值转化为字符串,字符转化为数值ord(s)函数
1.1 python字符串定义 #!/usr/bin/python # -*- coding: utf8 -*- # 定义一个字符串 s1 = 'this is long String that sp ...