画板 布局diagram wpf

[WPF]使用HLSL实现百叶窗动效

[WPF]使用HLSL实现百叶窗动效 百叶窗动画是制作PPT时常用的动画之一,本文将通过实现百叶窗动画效果的例子介绍在WPF中如何使用ShaderEffect。ShaderEffect使用高级着色器语言(High Level Shading Language,HLSL)事先制作好并且已经编译过的效果 ......
百叶窗 百叶 HLSL WPF

[WPF]使用HLSL实现百叶窗动效

百叶窗动画是制作PPT时常用的动画之一,本文将通过实现百叶窗动画效果的例子介绍在WPF中如何使用ShaderEffect。ShaderEffect是使用高级着色器语言(High Level Shading Language,HLSL)事先制作好并且已经编译过的效果。先看下百叶窗动画实现效果: ![i ......
百叶窗 百叶 HLSL WPF

flex布局

来源:https://developers.weixin.qq.com/ebook?action=get_post_info&docid=00080e799303986b0086e605f5680a容器属性,设置容器,用于统一管理容器内项目布局,也就是管理项目的排列方式和对齐方式。flex-dire ......
布局 flex

Android 深入理解布局优化

> 我的 CSDN 博客:https://blog.csdn.net/gdutxiaoxu > 我的掘金:https://juejin.im/user/2207475076966584 > github: https://github.com/gdutxiaoxu/ > 微信公众号:程序员徐公 # ......
布局 Android

flex布局被内容被撑开及flex布局下定宽元素被压缩

实现效果使用flex进行左右布局,左边定宽200px,右边自适应,当右边内容过多,造成右边盒子被撑开,会造成两种问题 左边定宽盒子被压缩解决办法: flex-grow:0;//是否自动增长空间 flex-shrink:0;//是否自动缩小空间 右边自适应的盒子被撑开 解决办法: flex:1; wi ......
布局 flex 元素 内容

flex布局

初始化值: 1. 元素不会在主维度方向拉伸,但是可以缩小 2. 元素被拉伸来填充交叉轴大小 flex: initial; justify-content: flex-start; align-items: stretch - flex: 0 1 auto flex: auto; - flex: 1 ......
布局 flex

界面控件DevExpress WPF(v23.2)下半年发展路线图

本文主要概述了DevExpress官方在下半年(v23.2)中一些与DevExpress WPF相关的开发计划。 通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF v23. ......
路线图 控件 DevExpress 界面 路线

WPF 一千个矩形做动画测试性能

在很多性能测试开始之前,都需要测试一下自己的期望优化的设备的性能上限是多少。我每次都是重新写一个测试应用,因为每次需要优化的方向都不相同。本文将记录一个我写的一个简单的测试应用,这里面包含了一千个半透明的矩形,且矩形都在做动画。可以测试自己的电脑的性能,看看是否一千个带动画的半透明矩形就带不动 本文 ......
矩形 性能 动画 WPF

WPF 使用 Silk 的 Direct2D 入门

在上一篇博客的基础上,使用 dotnet 基金会新开源的 Silk.NET 库,让 Silk.NET 创建的 DX 设备和 WPF 对接渲染。接下来本文将告诉大家如何使用 Silk.NET 提供的 Direct2D 底层封装,在 WPF 上绘制出界面 接着上一篇博客 [WPF 使用 Silk.NET ......
Direct2D Direct2 Direct Silk WPF

WPF 项目文件不加 -windows 的引用 WPF 框架方式

默认情况下的 WPF 项目都是带 -windows 的 TargetFramework 方式,但有一些项目是不期望加上 -windows 做平台限制的,本文将介绍如何实现不添加 -windows 而引用 WPF 框架 先看一个标准的 WPF 项目的 csproj 项目文件内容 ```xml WinE ......
WPF 框架 windows 方式 文件

WPF 警惕使用 Dispatcher

这是一个比较让人困惑的一个点,我一直都以为 Dispatcher.InvokeShutdown 和 Application.Current.Shutdown 是完全等价的。但是后面发现了其实这两者还是有些不同的,感觉上是 Dispatcher.InvokeShutdown 系列方法有点点设计的问题, ......
Dispatcher WPF

WPF 通过 EXIF 设置和读取图片的旋转信息

本文将告诉大家如何在 WPF 里面设置图片的 EXIF 信息,包括如何设置图片的旋转信息,以及如何读取 EXIF 的内容 值得一提的是在 WPF 里面,默认的图片渲染信息是无视 System.Photo.Orientation 信息的,一切都是推荐进行手动控制 在开始之前,咱先来用代码创建一张简单的 ......
图片 信息 EXIF WPF

WPF 通过 WindowsAppSDK 使用 WinRT 的手写识别功能

本文告诉大家如何在基于 .NET 6 的 WPF 使用 WinRT 的手写识别功能 在开始之前需要先创建 WPF 项目,创建完成之后,可替换 csproj 项目文件为以下代码,用来安装初始化环境 ```xml WinExe net6.0-windows10.0.19041 enable true x ......
WindowsAppSDK 功能 WinRT WPF

WPF 获取全局所有窗口的创建显示事件 监控窗口打开

本文将告诉大家如何在 WPF 里面进行全局监控任意的窗口创建显示打开,可以获取到每个 WPF 窗口的打开的时机。如此可以用来辅助定位问题和输出日志 这篇博客是有背景的,老司机告诉我说他的应用不响应鼠标和键盘点击了,于是我和他调查了半天才发现有一个 Dialog 窗口显示出来,导致消息循环被切到了一个 ......
全局 事件 WPF

WPF 设置 IncludePackageReferencesDuringMarkupCompilation 属性导致分析器不工作

本文记录在 WPF 项目里面设置 IncludePackageReferencesDuringMarkupCompilation 属性为 False 导致了项目所安装的分析器不能符合预期工作 设置 IncludePackageReferencesDuringMarkupCompilation 属性为 ......

WPF 自定义控件入门 可重写的各个方法或属性的意义

本文属于 WPF 自定义控件入门系列博客。本文整理在 WPF 里面,自定义控件,非用户控件时,可以重写基类的许多方法和属性,这些方法和属性的作用和含义。方便让大家了解到自定义控件时,有哪些方法或属性可以被重写,重写时的正确实现以及其影响是什么 这是有伙伴问我,他在自定义控件时,发现了自己的自定义控件 ......
控件 属性 意义 方法 WPF

dotnet 7 WPF 破坏性改动 按下 F3 让 DataGrid 自动排序

本文记录在 dotnet 7 下的 WPF 的一个破坏性改动。在 dotnet 7 下的 WPF 支持 DataGrid 在按下 F3 键的时候,自动按照当前所选列进行列自动排序。这将会让原本采用 F3 键进行其他业务逻辑的代码,工作起来有些非预期 此破坏改动是在此需求提出的: [https://g ......
破坏性 DataGrid dotnet WPF F3

dotnet 7 已知问题 WPF 的 TreeView 开启虚拟化之后只显示首项

本文记录 WPF 在 dotnet 7 的一个已知问题,此问题当前已修复,只需更新 SDK 或运行时即可。使用 TreeView 在开启虚拟化之后只显示首项,其他项不显示。本文将告诉大家此问题的原因和修复方式 先来看看问题的动态图片 ![](http://image.acmx.xyz/lindexi ......
首项 TreeView dotnet 问题 WPF

WPF 探索任务管理器的进程分组逻辑

在看到 Win10 或 Win11 的 Task Manager 任务管理器时,不知大家是否有一个疑问,在 进程 标签里的应用进程是如何分组的。为什么有些组能包含很多个不同的进程,有些只能包含一个。本文将使用 WPF 写一个简单的应用来告诉大家任务管理器的进程分组策略 如下图,这是任务管理器看到的 ......
逻辑 进程 任务 WPF

WPF 不安装 WindowsAppSDK 使用 WinRT 功能的方法

安装 Microsoft.WindowsAppSDK 库会限制应用程序只能分发 windows 10 应用,如果自己的应用程序依然需要兼容 Win7 等旧系统,那直接采用安装 WindowsAppSDK 方法将会丧失兼容旧系统能力。本文和大家介绍无需安装 Microsoft.WindowsAppSD ......
WindowsAppSDK 功能 方法 WinRT WPF

WPF 从零自己实现从 RealTimeStylus 获取触摸信息

本文将告诉大家什么是 RealTimeStylus 以及如何从零开始不使用 WPF 框架提供的功能从 RealTimeStylus 获取到触摸信息 开始之前先复习一下 Windows 的触摸演进。在上古 xp 时代,那会还没有约定好 `WM_Touch` 消息,但是那时就有了白板类应用笔迹书写的需求 ......
RealTimeStylus 信息 WPF

WPF 将 StaticResource 和 ResourceDictionary 放在一起的魔幻行为

本文将记录一些在 WPF 里面,使用 StaticResource 将 ResourceDictionary 玩坏的做法。大家可以放心的是,这些玩法基本只有高级玩家或逗比开发者才会使用到 ## 后加入的资源无法被 StaticResource 找到 在 App.xaml.cs 后台代码里面,手动加入 ......

WPF 已知问题 Separator 无法应用 ContextMenu 定义的默认样式

本文记录一个 WPF 已知问题,在 ContextMenu 的 Resources 里定义 Separator 的默认样式,在 ContextMenu 里面的 Separator 将应用不上,或者说不会找到此默认的样式。需要明确给 Style 一个 Key 且在 Separator 写明此 Key ......
ContextMenu 样式 Separator 问题 WPF

WPF 动画性能测试应用 一千个半透明矩形做动画

在很多性能测试开始之前,都需要测试一下自己的期望优化的设备的性能上限是多少。我每次都是重新写一个测试应用,因为每次需要优化的方向都不相同。本文将记录一个我写的一个简单的测试应用,这里面包含了一千个半透明的矩形,且矩形都在做动画。可以测试自己的电脑的性能,看看是否一千个带动画的半透明矩形就带不动 本文 ......
动画 矩形 性能 WPF

WPF 使用 Dispatcher 的 InvokeAsync 和 BeginInvoke 的异常处理差别

一般认为 WPF 的 Dispatcher 的 InvokeAsync 方法是 BeginInvoke 方法的平替方法和升级版,接近在任何情况下都应该在业务层使用 InvokeAsync 方法代替 BeginInvoke 方法。然而在异常的处理上,这两个方法还是有细微的差别的,不能说是坏事,依然可以 ......

WPF 编写一个测试 WM_TOUCH 触摸消息延迟的应用

我听说在 Win10 到 Win11 的系统版本左右,微软加上了一大波触摸性能优化,准确来说是 HID 性能优化。我想测试一下在这些系统下,采用从 Windows 消息接收到 WM_TOUCH 触摸消息的延迟将会是多少。本文将告诉大家我编写的测试应用 为了能够让 WPF 窗口能接收到 WM_TOUC ......
WM_TOUCH 消息 TOUCH WPF WM

WPF 已知问题 清空 CollectionView 的 SortDescriptions 可能抛出空异常

本文记录一个 WPF 的已知问题,在通过 CollectionViewSource 获取到 CollectionView 之后,如果 CollectionViewSource 对象已被 GC 回收,将可能在调用 CollectionView 的 SortDescriptions 属性进行清空或者移除 ......
SortDescriptions CollectionView 问题 WPF

WPF 对接 Vortice 调用 D2D 使用 IWICBitmap 离屏渲染

通过 Vortice 库可以使用非常底层的方式调用到 Direct2D1 进行渲染,本文将使用 D2D 离屏渲染到 IWICBitmap 上,再使用一点点反射黑科技,直接将此 IWICBitmap 对接到 WPF 框架里。本文提供的这个方法可以实现极高性能且只有很少的转换损耗的离屏渲染方式,唯一的一 ......
IWICBitmap Vortice WPF D2D D2

WPF 已知问题 InputEventArgs 的 Timestamp 属性是静态的导致事件之间相互影响

本文记录一个 WPF 已知的设计问题,当前此问题已经被大佬修复,这个设计问题刚好属于比较边缘的模块,我写了这么多年的代码还没有踩到这个坑一次,也没有听到有谁提到这个坑 远古时候,不知道大佬是故意还是失误的在 InputEventArgs 类型里面的 `_timestamp` 字段上加上了 stati ......

WPF 已知问题 在 ObservableCollection 的 CollectionChanged 修改集合内容将让 UI 显示错误

本文记录一个 WPF 已知问题,在 ObservableCollection 的 CollectionChanged 事件里面,绕过 ObservableCollection 的异常判断逻辑,强行修改集合内容,修改之后的 UI 层将不能符合预期。本文将告诉大家此问题的复现方法和修复方法 在 UI 绑 ......