/WPFDevelopers.Charts 大体思路 图表使用Arc+Popup实现; 图表分为两部分,一是环形部分,一是标注的明细部分; 环形部分使用Arc图形表示.需要注意这个Arc是Blend里的图形...首先以0-90度为例,说明一些基本的东西,见图; 首先Popup默认的位置,都是在它容器的左下方的,Popup的左上角和容器的左下角重合; 现在要做的是Popup标记为红点的位置,和圆环上标记为红点的位置重合...r相等;注意:因为圆弧是有厚度的,所以取r的时候要减去二分之一的圆弧厚度; 角A是可以通过90度减去圆弧的对应的角度求出来的,也就是sinA的值已知了,那么就可以求出a和b的长度,然后就可以去移动Popup...3、向上移动一个a的距离; 2)90-180度 X轴 : 1、向右移动二分之一个容器的width; 2、向右移动一个a的距离; Y轴 : 1、上移二分之一个圆弧的Thickness,以保证标记的起点在圆弧的中央...)的距离; 4)270-360度 X轴 : 1、向左移动一个a的距离; Y轴 : 1、向上移动二分之一个容器的height; 2、向上移动一个Popup的height; 3、向上移动一个b的距离;
使 WPF 支持触摸板的横向滚动 发布于 2017-11-23 13:25 更新于 2018-08-12...然而鉴于以前没有好好做,以至于 WPF 程序甚至都没有对触摸板的横向滚动提供支持(竖向滚动是直接使用了 MouseWheel,汗……)。但有些功能真希望能够支持横向滚动!...本文将介绍让触摸板支持横向滚动的方法,本质上也是用 MouseWheel,但却支持了横向。 ---- 中文 English ?...,参数是横向滚动的数值,就像鼠标滚轮纵向滚动的数值一样。...微软的 Microsoft Sculpt Comfort Mouse 鼠标滚轮也是支持横向滚动的,以上方法也可以支持。 ?
在 WPF 下,可以使用和 UWP 一样的 Pointer 触摸架构,只是开启的方式和 .NET Framework 版本有细微的差异 看过 win10 支持默认把触摸提升 Pointer 消息 的小伙伴可以了解到...,这个博客的方法是通过配置文件的方式 而在 .NET Core 的 WPF 下是不会去读取 App.config 文件,那么此时应该如何开启?...AppContext.SetSwitch("Switch.System.Windows.Input.Stylus.EnablePointerSupport", true); } 此时就可以开启 Pointer 消息的支持...注意需要在第一个窗口的显示之前调用,否则这个开关也就无效 开启之后,还请小伙伴测试一下,看是否真的开启了 Pointer 消息测试方法请看 WPF 如何确定应用程序开启了 Pointer 触摸消息的支持...代码放在 github 欢迎小伙伴访问 特别感谢 WPF 官方开发者Rob LaDuca 告诉我这个方法,详细请看 https://github.com/dotnet/wpf/issues/3360
手绘笔迹实际上就是需要支持回放的,手绘笔迹指的是在应用程序里面支持回放出手绘出来的笔迹。...本文来告诉大家一个简易的方法 啥都不说,先来一张图 在抬手的时候绘制出刚才所画的笔迹,做动画画出笔迹,就和手绘差不多的效果 下面来告诉大家核心的原理 在 WPF 中,可以使用一个叫路径动画的功能,通过这个功能可以传入一个...Path 路径就能动画出这个轨迹 在 WPF 中,笔迹的底层绘制是使用 Geometry 进行绘制。...这个蒙层是做刮刮卡的好工具,大概效果如下图 依靠上面三个机制就能实现手绘笔迹支持回放轨迹的动画功能 当然,第一步是需要支持笔迹书写的功能,这部分功能还请看 WPF 最简逻辑实现多指顺滑的笔迹书写 这篇博客的内容...更高级一点的是需要考虑一下音效等 以上其实就是来画手绘软件的手绘部分的 WPF 版的大概实现方法了,这是在 2018 的时候 邵猛 哥和我吹的时候告诉我的一个方法,详细请看 UWP 手绘视频创作工具技术分享系列
支持向量机(Support Vector Machine, SVM)作为一种有监督学习的二元分类器,在小样本分类中具有突出的优势,因此非常适合于基于脑影像数据的疾病分类研究。...LIBSVM工具包是台湾大学Lin Chih-Jen教授等开发一个SVM工具包,其可运行于Python, R, MATLAB等语言环境下,是目前大家用的比较多的一个SVM工具包。...从打开的网页中找到图2所示的下载页面,点击下载zip或 tar.gz格式的压缩包,目前的最新版本是libsvm-3.23 解压下载的压缩文件,里面包含包含MATLAB、Python等版本的安装包...LIBSVM安装成功后,可以用工具包自带的数据集“heart_scale”进行测试。...总结 支持向量机SVM作为一种有监督学习的二元分类器,在小样本分类中具有突出的优势,因此广泛应用于脑科学领域。
让 WPF 的 RadioButton 支持再次点击取消选中的功能 目录 让 WPF 的 RadioButton 支持再次点击取消选中的功能 零、前言 一、方法一:后台直接处理 二、方法二:提取为自定义控件...上面的动图先演示了 RadioButton 默认是不支持取消选中的;然后演示了通过上面代码实现的支持取消选中的 RadioButton。...原因就是,我们新建的那个用来记录上次选中状态的变量,在用户选中其它项,同时 WPF 框架自动取消选中本项时,没有进行记录。...后 Click 前的某个事件,比如 PreviewMouseUp),WPF 框架(或者说是 RadioButton 内部)就会把 IsChecked 设为 true(这就是前面的代码中需要另外新建变量来判断的原因...可以参考我之前的翻译文章《【翻译】WPF 中附加行为的介绍 Introduction to Attached Behaviors in WPF》: 在一个元素上设置一个附加属性,那么你就可以从暴露这个附加属性的类中获得该元素的访问
最简单的代码,让 WPF 支持响应式布局 响应式布局在各种现代的 UI 框架中不是什么新鲜的概念,基本都是内置支持。...然而在古老的 WPF 框架中却并没有原生支持,后来虽然通过 Blend 自带的 Interactions 库实现了响应式布局,但生成的代码量太大了,而且需要引入额外的库。...如果只是希望临时局部地方使用响应式布局,那么其实可以直接使用 WPF 内置的绑定机制来完成响应式布局。本文介绍如何使用。 ---- 思路是在控件尺寸发生变更的时候更新控件的样式。...直接在控件上使用的 Trigger 只能使用 EventTrigger,因此我们需要编写能写更多种类 Trigger 的 Style。...这里我们需要一个大于或等于,以及小于的转换器。
响应式布局在各种现代的 UI 框架中不是什么新鲜的概念,基本都是内置支持。...然而在古老的 WPF 框架中却并没有原生支持,后来虽然通过 Blend 自带的 Interactions 库实现了响应式布局,但生成的代码量太大了,而且需要引入额外的库。...如果只是希望临时局部地方使用响应式布局,那么其实可以直接使用 WPF 内置的绑定机制来完成响应式布局。本文介绍如何使用。 思路是在控件尺寸发生变更的时候更新控件的样式。...Collapsed" /> 本文会经常更新,请阅读原文: https://blog.walterlv.com/post/wpf-adaptive-ui-in-simplest-way.html...,以避免陈旧错误知识的误导,同时有更好的阅读体验。
Windows 跳转列表是自 Windows 7 时代就带来的功能,这一功能是跟随 Windows 7 的任务栏而发布的。...当时应用程序要想用上这样的功能需要调用 shell 提供的一些 API。 然而在 WPF 程序中使用 Windows 跳转列表功能非常简单,在 XAML 里面就能完成。...本文将介绍如何让你的 WPF 应用支持 Windows 跳转列表功能。 ---- 一个简单的跳转列表程序 新建一个 WPF 程序,然后直接在 App.xaml 中添加跳转列表的代码。...Windows 的跳转列表有两种不同的列表项,一种是“任务”,另一种是文件。至于这两种不同的列表项如何在跳转列表中安排,则是操作系统的事情。...Extensions - Windows applications - Microsoft Docs 本文会经常更新,请阅读原文: https://blog.walterlv.com/post/wpf-application-with-jumplist.html
我准备写一个逗比的应用,然而我担心被小伙伴看到这个应用的文件从而知道是我写的,于是我就需要实现让应用能自删除的功能。...获取代码之后,进入 QarnafahayWalllukerrairbar 文件夹 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF...,同时有更好的阅读体验。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。...无盈利,不卖课,做纯粹的技术博客
WPF 支持创建多个 UI 线程,跨窗口的或者窗口内的都是可以的;但是这个过程并不是线程安全的。 你有极低的概率会遇到 WPF 多线程 UI 的线程安全问题,说直接点就是崩溃。...简述这个线程安全问题 必要条件: 创建多个 WPF UI 线程 其实两个就够了,一个我们平时写的 App 类所在的主 UI 线程;一个后台 UI 线程,例如用来显示启动闪屏的 UI 线程 两个线程的话你需要大量重复试验才能复现...;而创建更多线程可以大大提高单次复现概率 这些 UI 线程都显示 WPF 窗口 无论是 .NET Framework 4.7.2 版本的 WPF,还是 .NET Core 3 版本的 WPF 都会出现此问题...WPF 中在 Visual Studio 2019 抓到的异常: 复现步骤 创建一个新的 WPF 项目(无论是 .NET Framework 4.7.2 还是 .NET Core 3) 保持自动生成的...,以避免陈旧错误知识的误导,同时有更好的阅读体验。
前言 在文章撰写中,我们常常需要配以图表或者图形来更加丰富的呈现。...Excalidraw是一个虚拟白板应用,专门用于绘制类似手绘的图表。它提供了一个无限的、基于画布的白板,具有手绘风格,支持多种功能。 新更新允许用户输入文本描述,将其自动转换为相应的图表或图形。...Excalidraw是一款开源的虚拟白板工具,拥有手绘风格,支持协作和端到端加密。...使用Excalidraw,你可以创建美观的手绘风格图表、线框图等 主要特点: •Excalidraw编辑器(npm包)支持以下功能:• 免费且开源。•无限的、基于画布的白板。•✍️ 手绘风格。...•⚒️ 提供广泛的工具 - 矩形、圆形、菱形、箭头、线条、自由绘制、橡皮擦等。•️ 支持箭头绑定和标签箭头。• 支持撤销/重做。•支持缩放和平移。
默认的 WPF 的支持点击穿透的透明背景窗口,是通过 AllowsTransparency 实现的,但是此方法的性能比较低。...但根据 WPF 从最底层源代码了解 AllowsTransparency 性能差的原因 可以了解到此方法的性能比较低 本文提供的方法是使用 WPF 制作高性能的透明背景异形窗口(使用 WindowChrome...而做不到和 WPF 提供的 AllowsTransparency 的方法让透明的部分支持穿透。...为了让 WPF 支持设置 WS_EX_LAYERED 样式,可以在上面 HwndTarget 的逻辑运行完成之后,运行咱自己的逻辑,再设置一遍。...的方法只支持在有开启 DWM 的模式下才能用上,否则透明部分会显示黑色 判断是否开启 DWM 可以使用 Dwmapi.dll 提供的 DwmIsCompositionEnabled 方法,如下面代码
因为 WPF 在开启 Pointer 和没有开启的基础表现几乎相同,因此从业务层很难了解到当前是否开启了 Pointer 消息。...本文从开发者的角度,通过 Windows 消息判断当前是否开启 Pointer 支持 在 win10 支持默认把触摸提升 Pointer 消息 告诉大家如何在 Win10 下让 WPF 在 .NET 4.7...和以上框架支持 Pointer 消息 那么如何确定这个 WPF 程序我写对了,开启了 Pointer 消息?...可以通过监听 Window 消息,如果能收到 Pointer 的消息,那么算开启成功 不需要在用户端判断,用户端只需要判断 运行的系统是 Windows 10 Creators Update 1703...因此本文更多是给开发端,开发的时候通过此方法可以确定是否开启了 Pointer 消息 在 WPF 添加窗口消息钩子方法 这篇博客告诉大家如何拿到窗口的消息 在这个基础上,尝试在拿到消息判断是否 Pointer
正式支持WPF插件 因为之前一直运行于.NET Framework 2.0之上的原因,所以AgileEAS.NET平台一直没有提供对WPF技术的支持,本次重构之后,平台支持WPF技术,具体使用技术与...调整了WinForm/WPF运行容器 AgileEAS.NET平台支持了WPF技术,但对于我们现行的客户来说,使用最多的还是Winform技术,WPF技术可以现有补充,但不是全部替换,那就需要解决一个问题...,Winform插件与WPF插件的共存,本次重构调用了之前的Winform运行容器,以期同同时支持Winform和WPF,即WinForm/WPF运行容器。 ...WinForm/WPF运行容器开放更多的接口 Winform/WPF运行容器在之提为大家提供了基于资源接口的方式进行自定义logo、标题等方式的替换,大家可以参考callhot的AgileEAS.NET...,更重要的是,新的ORM技术支持linq。
对不起,你所在的位置不支持地图图表,怎么办? 如果你正在制作地图,你会遇到两个问题: 以及: 至于这是什么原因,我们不得而知。...直观上的意思是:你所在的位置不支持你用 Excel 中的默认地图图表。 轻量级小工具解决 在多年前的一个自制小工具送给你使用: 其实大家只是想做个地图而已,如下: 完成。
用 WPF 开发一个代码编辑器的难度很低,因为行业里面有很多小伙伴开发过,这些小伙伴将自己的代码开源了,发布到 NuGet 上,所以让我开发一个代码编辑器的难度实在太低。...在不要有奇特的要求情况下,通过 AvalonEdit 可以快速开发出自己想要的代码编辑器 第一步通过 NuGet 安装 AvalonEdit 打开 xaml 界面,添加控件,此时可以在界面设置代码高亮方式等...="XML" 设置 AvalonEdit 的代码字体和大小分别是 FontFamily 和 FontSize 属性 很多代码编辑器都有行号,通过 ShowLineNumbers 属性让自己用 WPF 写的代码编辑器可以显示行号...,通过下面属性让 AvalonEdit 支持设置继承上一行的行首空格 的代码放在 github 欢迎小伙伴访问
这是在 GitHub 上有小伙伴报的问题,在 WPF 中,不支持调用 BitmapDecoder.Create 方法,传入的 FileStream 是配置了 FileOptions.Asynchronous...本质原因是 WIC 层不支持,和 WPF 没有关系 GitHub 链接: BitmapDecoder.Create does not handle FileStream with FileOptions.Asynchronous...,传入的带 FileOptions.Asynchronous 的 FileStream 抛出错误,不是 WPF 层的锅,而是 WIC 层不支持。...在 GitHub 上报告的作者 Nikita Kazmin 给了一个我同意的建议是 WPF 在 BitmapDecoder.Create 方法里面应该判断一下,如果传入的 FileStream 是异步的...和 gitee 欢迎小伙伴访问 当前的 WPF 在 https://github.com/dotnet/wpf 完全开源,使用友好的 MIT 协议,意味着允许任何人任何组织和企业任意处置,包括使用,复制
本文记录 WPF 在 dotnet 9 的一项 XAML 编写语法改进点,此改进点用于解决编写 Style 的 Setter 进行给 Value 赋值时,不能将 Value 当成默认内容,需要多写 Value...通过此改进点可减少两行 XAML 代码 在原先的 WPF 版本里面,对 Style 的 Setter 填充复杂的对象内容时,大概的示例代码如下 ...被微软的 Anjali 在 https://github.com/dotnet/wpf/pull/8534 实现 此变更将影响 XAML 语法,对应的文档也进行了同步更新,详细请看 https://github.com.../dotnet/wpf/pull/8534 的实现里面,将 Setter 的 Value 当成默认内容,于是在 Setter 里面放入的内容,将会自动给 Value 进行赋值 上述的核心逻辑在 src/.../wpf 完全开源,使用友好的 MIT 协议,意味着允许任何人任何组织和企业任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。
今天的 MauiCompat 版本包括对 iOS 和 Android 的支持。未来的 MauiCompat 版本将包括对 iOS、Android、macOS 和 UWP 的支持。...我们建议最终将 Xamarin.CommunityToolkit.MauiCompat 替换为新的 .NET MAUI 工具包 CommunityToolkit.Maui,以利用新功能和优化(请参见下面的图表...❌ 全新的 .NET MAUI 应用程序 对于新的(又名绿地).NET MAUI 应用程序,请使用新的 .NET MAUI 社区工具包,该工具包针对 .NET MAUI 进行了全面优化,而不是 Xamarin.CommunityToolkit.MauiCompat...您可以只注册实际需要的渲染器,也可以注册 Xamarin 社区工具包内的所有渲染器。看看下面的代码片段如何做到这两点。...非渲染器控件 有些控件不需要(单独的)渲染器,即 Shield。目前不支持这些控件。我们有一个 标记应该有效 该包应该可以正常工作,因为它不依赖于渲染器。
领取专属 10元无门槛券
手把手带您无忧上云