lindexi

林德熙 - Windows 10 App Developer

林德熙

WPF 判断调用方法堆栈

最近遇到一个问题,经常有小伙伴在类A的构造里调用静态函数B,但是这时B依赖于A的初始化完成,于是就无限循环。所以我需要在判断小伙伴调用B时是否在A的构造方法里,如果是就给他异常。 本文告诉大家如何使用 StackTrace 获得调用堆栈,并且判断当前是否构造调用

WPF 判断USB插拔

本文告诉大家如何在 WPF 在用户插拔 USB 收到消息

WPF 修改按钮按下的颜色

本文告诉大家如何使用附加属性修改按钮按下去时的背景

WPF 修改图片颜色

本文告诉大家如何修改图片的颜色,如去掉图片的蓝色

UWP WPF 解决 xaml 设计显示异常

本文告诉大家如何解决 xaml 设计显示异常

C# 写系统日志

因为我不想使用自己写文件,我的软件是绿色的,所以把日志写到 Windows 日志。

WPF 读取硬件序列号

本文告诉大家如何在 WPF 读取硬件的序列号

WPF 渲染级别

很少人会知道 WPF 也可以知道当前的显卡能支持的渲染级别。 根据显卡的不同,包括显存、纹理等的支持是否打到要求,指定渲染级别。

WPF 在 DrawingContext 的 push 如何使用

本文告诉大家如何使用 DrawingContext 变换,修改画出的内容。

WPF 获得触摸精度和触摸点

本文主要告诉大家如何获得所有的触摸设备的触摸精度和触摸点数。

WPF 在 Alt+Tab 隐藏窗口

最近在开发一个 Toast 窗口,因为这个窗口不能在显示之后关闭,因为可能用户会不停让窗口显示,所以只能 Hide 。但是这样会在 切换窗口看到这个窗口,所以我找到了一个方法来让 WPF 窗口不在切换窗口显示。

Windows 10 16251 添加的 api

本文主要讲微软最新的sdk添加的功能,暂时还不能下载,到 7月29 ,现在可以下载是 16232 ,支持Neon效果。 实际上设置软件最低版本为 16232 就自动支持 Neon 效果。 主要添加了 AppDataPaths SystemDataPaths 等

WPF 获得触笔悬停元素上

触笔可以获得悬停在元素上,这时触笔没有碰到元素,没有碰到屏幕。

WPF 拖动时出现 Invalid FORMATETC structure

如果在 WPF 需要支持一个东西可以拖动,那么可以使用 DragDrop ,但是使用这个之后就出现了异常

System.Runtime.InteropServices.COMException was unhandled
Message: An exception of type 'System.Runtime.InteropServices.COMException' occurred in PresentationCore.dll and wasn't handled before a managed/native boundary
Additional information: Invalid FORMATETC-Structure (Exception HRESULT: 0x80040064 (DV_E_FORMATETC))

WPF 异常 NativeWPFDLLLoader.LoadNativeWPFDLL

如果发现出现下面异常,可以尝试重装 .net Framework

WPF 只允许打开一个实例

我们有时候只希望我们的程序只打开一个实例,也就是我们的软件只有一次被打开。 那么我们可以通过一个办法知道,在这个软件打开前是不是打开过一个,还没关闭。也就是是否存在另一个程序在运行。

C#命令行解析工具

我将告诉大家两个方法去获取C#输入的命令行参数。

C# 字符串首字符大写

我找到一些把字符串首字符大写的方法。

Github 给仓库上传 NuGet 库

在 Github 可以发布自己的 NuGet 库,本文将告诉大家如何发布

Roslyn 在多开发框架让 msbuild 的 Target 仅运行一次

在写预编译框架,因为安装项目会基于多个平台,也就是对应的 Target 会执行多次,而我需要的只是执行一次就可以

VisualStudio 断点调试详解

本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时

WPF Process.Start 出现 Win32Exception 异常

我在使用 WPF 调用其他软件的时候,发现出现Win32Exception异常。

UWP 转换 IBuffer 和其他类型

本文告诉大家在 UWP 如何转换 IBuffer 为 string 和 stream 类

Roslyn 在 msbuild 的 target 判断文件存在

在使用 msbuild 定义编译时运行的逻辑,可以使用 Exists 判断文件是否存在

WPF 使用 Win2d 渲染

在当前所有渲染框架里面,做 2D 渲染的,最好的框架是 Win2d 这个提供了大量底层接口封装,不仅性能高同时接口设计非常好 在很久之前,只有在 UWP 等现代应用才能使用 Win2d 而 WPF 是不能使用的。好在微软开放了一些黑科技,可以在 WPF 上使用 Win2d 渲染,下面就让我告诉大家如何在 WPF 上使用

VisualStudio 解决方案筛选器 slnf 文件

在 VisualStudio 2019 发布的时候,有一个强大的功能是不加载项目打开提升性能,此时可以用到解决方案筛选器 slnf 文件。这个文件将会带来很大的性能提升。本文将会详细告诉大家这个文件的格式以及带来的好处

VisualStudio 好用插件集合

我找到了很多好用的 VisualStudio 插件,通过插件可以提高开发效率

VisualStudio 使用多个环境进行调试

在 VisualStudio 2017 支持使用 launchSettings.json 文件定义多个不同的环境进行调试

VisualStudio 使用三个方法启动最新 C# 功能

本文告诉大家如何在 VisualStudio 打开最新的 C#,现在的微软更新 C# 很快,那么如何让 VisualStudio 在项目使用最新的

VisualStudio 2019 如何离线下载

本文告诉大家如何离线下载 VisualStudio 2019 离线安装

Roslyn 如何在 Target 引用 xaml 防止文件没有编译

在使用新的项目格式,可以使用 Target 添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是在引用编译之后,那么文件将无法进行编译。

Roslyn 使用 Directory.Build.props 文件定义编译

本文告诉大家 Directory.Build.props 是什么有什么优点?如何使用 Directory.Build.props 文件定义编译

Resharper 去掉注释拼写

最近在 Resharper 的 2018.2.1 的版本,提供了单词拼写功能,如果自己写错了单词,可以在 Resharper 提示

WPF 使用 RawInput 接收裸数据

在 Windows 提供很底层的方法接收硬件设备的裸数据,通过接收裸数据可以做到性能更高的全局键盘,还能支持多个鼠标。但是用这个方法需要自己解析裸数据,同时会因为接受到很多消息降低性能