本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-offscreen-drawing/ 应用有时需要将图形绘制到并不立即显示的目标上.此类绘制动作被称作“幕后绘制”或“绘制到纹理”.当应用需要将绘制操作输出保存到一个文件.返回为一个像素数组或留作后续操作的输入源时,常需要进行这种幕后绘制. 通过使用 Win2D 中的 CanvasRenderTarget 可以轻松实现以上场景. CanvasRenderTarget 派生自 CanvasBitmap ,包含…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-dpi-dips/ 本文旨在解释物理像素与设备独立像素(DIPs, device independent pixels)之间的区别,以及 Win2D 如何处理 DPI (dots per inch/每英寸点数). Win2D 被设计为可以自行感知设备环境,以便在各种高低不同 DPI 的设备上呈现正确的视觉表现,故多数应用可以忽略 DIPs 和 DPI 之间的区别.如果你的应用有更多特定需求,或者你希望自行定…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-premultiplied-alpha/ 在计算机绘图中有两种表示颜色值不透明度的方法.Win2D 中两种方法均有所采用.本文旨在解释两种方法之间的区别以及其各自的使用场景. 直接 Alpha (Straight alpha) 当使用直接,亦即线性 Alpha 时: RGB 值指定绘制目标的颜色 Alpha 值指定绘制目标的质密程度 在该方法中,RGB 和 Alpha 通道各自独立发挥作用.它们可以在不互相…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-pixel-formats/ DirectXPixelFormat 枚举 包含了 Direct3D 和 DXGI 所使用全部各种像素格式,但其中只有部分被 Win2D 所支持 (或被 Win2D 构建的基础—— Direct2D 所支持). 如果不确定该采用哪种格式,默认选择 B8G8R8A8UIntNormalized 作为像素格式以及 Premultiplied 作为 CanvasAlphaMode (…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-choosing-control-resolution/ 本文旨在讲解如何配置 Win2D XAML 控件使用的分辨率.下文将介绍如何: 使 Win2D 控件运行在固定的分辨率. 通过调整控件 DPI 减少渲染像素数以增强性能. 分辨率与控件缩放 本文中所用的“分辨率”一词,是指位图的尺寸(高宽). Win2D XAML 控件绘制的对象均有分辨率和 DPI 这两项属性.对象的 DPI 指示了绘制时其构成像素…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-handling-device-lost/ “设备丢失”是指 GPU 设备失效无法继续进行渲染的情况.GPU 硬件故障.驱动程序缺陷.驱动程序软件更新或者从一个 GPU 切换到另一个都可能导致此问题.丢失的设备无法使用,此时任何尝试使用设备的 Win2D 都会引发异常.要解决这一问题,应用必须创建新设备再重新创建所有图形资源. 并非所有应用都需要操心如何解决设备丢失的情况.设备丢失是一种比较少见的情况(但愿…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-avoiding-memory-leaks/ 在托管 XAML 应用中使用 Win2D 控件时,必须谨慎处理对象引用计数,以免控件不能被垃圾回收器回收. 内存泄漏的发生条件 你正在通过 C# 等 .Net 语言 (非原生 C++)使用 Win2D 你使用了以下任一 Win2D 控件: CanvasControl CanvasVirtualControl CanvasAnimatedControl Canva…
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-interop-with-direct2d/ Win2D 作为 Direct2D 的上层实现,支持与其进行双向互操作.如果你有一个 Win2D 对象,你可以访问到用以实现它的原生 Direct2D 对象:而如果你有一个 Direct2D 对象,只要包装该 Direct2D 对象的 Win2D 对象存在,你也能查找到此 Win2D 对象,或者,当 Win2D 包装对象不存在时,你也可以手动创建一个新的包装器.…
NLog使用方法 作者:Jaros?aw Kowalski <> 翻译:CrazyCoder(由衷感谢他的热心!!) 原文:http://www.nlog-project.org/config.html 更多关于NLog的中文文章,请参考<NLog文章系列>. NLog支持以多种不同方式配置,目前同时支持直接编程和使用配置文件两种方法.本文将对目前支持的各种配置方式作详细描述. 日志配置 通过在启动的时候对一些常用目录的扫描,NLog会尝试使用找到的配置信息进行自动的自我配置.当你…
公司之前一直用的Web前台框架是Knockout,我们通常直接叫ko,有看过汤姆大叔的KO系列,也有在用,发现有时候用得不太顺手.本人是会WPF的,所以MVVM也是比较熟悉的,学ko也是很快就把汤姆大叔的文章系列看完了,但是ko有时候会有意想不到的问题,同事也有这样的反应,所以就度娘了一下.就找到了AngularJS和KO的对比文章<從Knockout到AngularJS>,看了之后不明觉厉.其实早在AngularJS刚刚问世的那年,因为我订阅了博友--梦想天空(山边小溪)的博客(这里得特别感…