随笔分类 - WPF/Silverlight
Windows Presentation Foundation
摘要:本文介绍如何将窗口置于最顶层,以及解决在顶层显示时对锁屏登录界面的影响等问题。用于实现类似Launcher、系统工具等应用需要窗口层级比Windows开始菜单以及置顶任务栏还要高的场景 一般情况下的窗口置顶,可以设置WPF窗口属性Topmost=true 也可以使用WIN32-SetWindowPo
阅读全文
摘要:.NET 多线程 Task Cancel Result、Wait Continue 异步编程 async、await await原理 同步上下文 死锁 同步、异步 信号发生器 Auto Manual PushFrame TaskCompletionSource 并发、并行 Task并行 Parall
阅读全文
摘要:.NET/WPF开发 Visual Studio 最新版本是VS2022,官网下载:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 VsColorOutput 控制台可视化很强、编译会区分颜色输出,在VS扩展中在线安装最新VsColorOutput64 Reshape
阅读全文
摘要:本文记录在WPF应用中鼠标、触摸混合输入,鼠标事件抬起时不会有MouseUp事件触发的问题。 事件输入我们都知道有3类:鼠标、触摸、触笔,鼠标是windows系统出来就有的事件,后面加了触笔、触摸。 1.鼠标输入,只会触发Mouse冒泡隧道事件; 2.触笔输入,会触发除了Stylus事件外,还会触发
阅读全文
摘要:本文介绍不依赖贝塞尔曲线,如何绘制一条平滑曲线,用于解决无贝塞尔控制点的情况下绘制曲线、但数据点不在贝塞尔曲线的场景。 在上一家公司我做过一个平滑曲线编辑工具,用于轮椅调整加减速曲线。基于几个用户可控制的点,生成一条平滑的曲线,控制点需要保持在曲线上。 今天和小伙伴沟通,白板以自定义形状绘制笔迹,也
阅读全文
摘要:白板软件书写速度是其最核心的功能,注册StylusPlugin从触摸线程拿触摸点数据并在另一UI线程绘制渲染是比较稳妥的方案,具体的可以查看小伙伴德熙的2019-1-28-WPF-高性能笔 - lindexi - 博客园 (cnblogs.com) 上面StylusPlugin方案能提升在大屏目前如
阅读全文
摘要:使用AppContext.SetSwitch(AppContextSwitchOverrides 元素 - .NET Framework | Microsoft Learn),开启Pointer消息: 1 public partial class App : Application 2 { 3 pu
阅读全文
摘要:触摸等快速移动WPF元素时,因元素无法跟上元素移动速度,后续的移动事件无法触发导致移动操作停顿。 这时候调用CaptureMouse捕获设备焦点,就可以支持设备快速移动操作。 设备输入有三种鼠标、触笔、触摸,所以对应的设备焦点捕获也有三类:CaptureMouse、CaptureStylus、Cap
阅读全文
摘要:自定义控件,应用样式后,提示绑定异常: System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpres
阅读全文
摘要:我们都知道路由事件,而附加路由事件用的比较少。 但如果是通用的场景,类似附加属性,附加事件就很有必要的。 举个例子,输入设备有很多种,WPF中输入事件主要分为鼠标、触摸、触笔:WPF 屏幕点击的设备类型 - 唐宋元明清2188 - 博客园 (cnblogs.com) 有这么多输入事件Mouse、To
阅读全文
摘要:WPF窗口设置属性ResizeMode="NoResize"时,回到桌面后,点击任意应用,都会将此窗口激活。 我们来看下详细操作: 1. WPF窗口设置属性ResizeMode 2. 启动测试程序,显示窗口 3. 在任务栏的右键菜单中,点击显示桌面(也可以使用快捷键win+D,回到桌面) 4. 点击
阅读全文
摘要:当程序运行,窗口已经加载后,如果修改屏幕分辨率,会影响窗口的正常显示。 举个案例: 悬浮窗口,显示在屏幕右下角。当分辨率、文本显示比例变更后,窗口位置可能会超出屏幕范围。 所以当屏幕变更时,我们需要知道准确的时机,然后针对的处理。 通过窗口消息监听屏幕显示变更 对窗口添加钩子 1 var windo
阅读全文
摘要:外部字体文件 1.后台代码引用字体 将一个名为“ChineseCharacterSpecialFont.ttf”的ttf文件,放在桌面路径,后台引用方式如下: 1 var ttfFilePath = @"C:\Users\user\Desktop\"; 2 HanziTextBlock.FontFa
阅读全文
摘要:在MainWindow中,创建一个背景属性BrushTest,并将其绑定至界面上UserControl的BackgroundTest属性 UserControl,同样添加一个BackgroundTest属性,并将其绑定至界面。 运行后,控制台输出绑定异常,背景设置并没有生效。 System.Wind
阅读全文
摘要:win32Api提供一种方法,模拟用户触摸点击 InjectTouchInput function InitializeTouchInjection InjectTouchInput 在模拟添加触摸输入(InjectTouchInput)前,需要提前初始化(InitializeTouchInject
阅读全文
摘要:前言 列表滚动到具体的数据项? ListBox提供了简易快捷的滚动定位函数ScrollIntoView。 TreeView树状结构列表,则没有此类方法,无法与ListBox一样,直接设置滚动到具体的数据项。 同时,SelectedItem也是只读的,无法设置SelectedItem来间接的设置滚动项
阅读全文
摘要:问题介绍 当ObservableCollection列表被UI线程占用时,如果在异步线程中调用ObservableCollection,会弹出以下异常: 问题分析 我们使用一个viewModel,在ViewModel中添加ObservableCollection类型的ItemsSource列表。 在
阅读全文
摘要:当图片转svg,svg转Xaml后,根据数据加载显示图片 DrawingImage: 也有可能,同时也需要Geometry: 如何将俩种引用方式,提取Path数据重用? StreamGeometry不行, 没有相应的属性可以支持。。。。 所以我们换个Geomery,虽然没有StreamGeometr
阅读全文
摘要:当我们需要在程序中替换主题,更换另一套背景、颜色、样式时,如何在不修改资源Key值,直接替换呢? 问题&疑问 1. Key值冲突 同一ResourceDictionary中,不可以使用相同Key 2. 资源替换 添加俩套样式,Xaml下是否可以将原有的资源(如样式)替换成新的资源? 加载顺序是否会冲
阅读全文
摘要:WebView简介 在win10之前,浏览器控件有WPF版本webBrowser、Winform版本WebBrowser,浏览器内核为IE。 win10之后,微软不再维护原有的WebBrowser,转而推出UWP版本的WebView,可以适配于WPF、Winform程序。 WebView使用 限制条
阅读全文

浙公网安备 33010602011771号