Wpf
dotnet 读 WPF 源代码笔记 聊聊 HwndWrapper
我在阅读 WPF 源代码,在 HwndWrapper 的静态构造函数看到了申请了 HwndWrapper.GetGCMemMessage 这个 Windows 消息,好奇这个消息是什么功能的。通过阅读 WPF 源代码和写测试应用,了解到这是一个完全用来内部测试或调试的消息,没有任何业务上的功能 在 ......
dotnet 读 WPF 源代码笔记 GlyphRun 的 DeviceFontName 的功能是什么
在 WPF 里面的 GlyphRun 里,有一个令人迷惑的 DeviceFontName 属性,似乎给这个属性传入什么值,结果都不会有变更。通过阅读源代码,可以了解到,这是一个没什么用途的属性。本文将告诉大家这个属性的细节逻辑 在上一篇博客 [WPF 简单聊聊如何使用 DrawGlyphRun 绘制 ......
dotnet 读 WPF 源代码笔记 渲染层是如何将字符 GlyphRun 画出来的
从业务代码构建出来 GlyphRun 对象,在 WPF 的渲染层里,如何利用 GlyphRun 提供的数据将字符在界面呈现出来。本文将和大家聊聊从 WPF 的渲染层获取到 GlyphRun 数据,到调用 DirectX 的各个渲染相关方法的过程,也就是 WPF 绘制文本字符的原理或者实现方法 大家印 ......
修复 WPF 安装 WindowsAppSDK 库构建失败 NETSDK1082 和 NETSDK1112 找不到 win10-arm 失败
通过在 WPF 项目上安装 WindowsAppSDK 库,可以让 WPF 使用上 Win10 及以上版本提供的 Windows Runtime 强大的 API 集和使用上更多的黑科技。本文记录在安装 WindowsAppSDK 库之后,项目生成失败,提示 NETSDK1082 和 NETSDK11 ......
WPF学习 - 自定义窗体(二)
上一篇文章写了如何创建自定义窗体:使用 WindowChrome 或者 WindowStyle=“None”这两种方式。本文将讲述如何设置窗体的效果(以阴影效果为例),以及在效果模式下,窗体各功能的配合。 一、窗体的空间范围: 窗体的范围,就是白色区域部分:包括窗体的边框,标题栏,以及内部的空白部分 ......
cefsharp - WinForms 和 Wpf 示例之间的巨大性能差异
https://www.coder.work/article/7217456 我注意到在使用 http://www.vsynctester.com 时 CefSharp.WinForms.Example 和 CefSharp.Wpf.Example 之间存在非常重要的性能差异(以 FPS 计) 在我 ......
WPF - 之对象变形
WPF(Windows Presentation Foundation)是一个用于构建客户端应用程序的图形界面库,它提供了许多对象变形(Object Transformation)的功能。这些功能可以让你轻松地改变对象的大小、位置和角度,以实现各种视觉效果。 以下是一些常用的 WPF 对象变形技术: ......
WPF 性能测试
本文收藏我给 WPF 做的性能测试。在你开始认为 WPF 的性能存在问题的时候,不妨来这篇博客里找找看我做过的测试。我记录的测试都是比较纯净的测试项目,没有业务逻辑的干扰,写法也正常,可以更加真实反映 WPF 的性能,减少因为奇怪的业务逻辑以及逗比的写法的影响 ## 资源字典 ### 大量 Geom ......
WPF 使用 Silk
在上一篇博客的基础上,使用 dotnet 基金会新开源的 Silk.NET 库,让 Silk.NET 创建的 DX 设备和 WPF 对接渲染。接下来本文将告诉大家如何使用 Silk.NET 提供的 Direct2D 底层封装,在 WPF 上绘制出界面 接着上一篇博客 [WPF 使用 Silk.NET ......
WPF 优化 EnsureHandle 启动性能
本文将记录一个在 WPF 应用程序启动过程中的性能优化点。如果一个窗口需要设置 WindowStyle 属性,那么在窗口 EnsureHandle 之前,设置 WindowStyle 属性将会比在 EnsureHandle 之后设置快不少 在 dotTrace 里的一次测量在窗口 EnsureHan ......
WPF 通过 RawInput 获取触摸消息
触摸在 Windows 下属于比较特殊的输入,不同于键盘和鼠标,键盘和鼠标可以通过全局 Hook 的方式获取到鼠标和键盘的输入消息。而触摸则没有直接的 Hook 的方法。如果期望自己的应用,可以在没有作为前台获取焦点的应用时,可以抓取到全局的触摸消息,抓取到其他应用程序的触摸输入,那么可以尝试使用 ......
WPF 制作一个加密文件夹应用
我有一个需求就是将我的一些文件夹的内容同步到网盘上面去。但是我是不信任现在的各个网盘的,网盘的数据被我认为是会被泄露的数据,我需要同步的文件夹中,可能存在隐私的数据。于是我就想到了将文件夹里面的内容进行加密,将加密之后的内容再同步到网盘上面去。如此网盘泄露的数据是加密之后的数据,没有密码的前提下,其 ......
WPF 自定义控件入门 Focusable 与焦点
自定义控件时,如果自定义的控件需要用来接收键盘消息或者是输入法的输入内容,那就需要关注到控件的焦点 默认情况下的自定义控件是没有带可获取焦点的功能的,例如编写一个继承 FrameworkElement 的名为 Foo 的用来演示的自定义控件,通过 Focus 方法其实也是无法给此控件设置上焦点了 为 ......
WPF 字体 FontStyle 的 Italic 和 Oblique 的区别
本文介绍在 WPF 里面的字体属性 FontStyle 的 Italic 和 Oblique 的斜体差别 本文的图片和知识来自: [#265 – Specifying Values for FontStyle 2,000 Things You Should Know About WPF](https ......
WPF 自定义窗体(一)
.Net默认的窗体样式只有四种:None、SingleBorderWindow、ThreeDBorderWindow、ToolWindow,都比较“丑”。而很多时候,我们希望自定义窗体,比如,无边框,有阴影,或者有模糊效果等。 在WPF中,要实现自定义窗体比较简单,主要有两种方法: 1)使用Wind ......
WPF项目国际化多语言工具ResXManager使用
首先在VS的扩展找到ResXManager进行下载安装 如果安装提示:vsix安装提示无法成功应用某些修改找到安装程序实例 1a5a9225,但其处于不可启 重新选中工具进行安装之后即可(有可能之前选中安装了,但是功能不完整,重新点击安装完整即可) 安装完ResXManager之后打开 新增语言,然 ......
WPF 应用适配阿拉伯语注意问题
给所有Window设置FlowDirection="RightToLeft"属性即可,输入框的光标问题切换到阿拉伯输入法会自动适配。参考微软官方文档:https://learn.microsoft.com/zh-cn/dotnet/desktop/wpf/advanced/wpf-globaliza ......
WPF - 阴影效果
基本属性: 属性 说明 描述 Color 设置阴影效果背景色 Color="Red" ShadowDepth 设置阴影的偏移度 ShadowDepth="5" Direction 设置阴影的角度 Direction="-45" BlurRadius 设置阴影模糊程度 BlurRadius="20" ......
WPF ComboBox SelectionChanged 重复执行的问题
参考:WPF TabControl SelectionChanged 重复执行的问题 - 一!雨 - 博客园 (cnblogs.com) 添加如下代码 private void ComboBox_SelectionChanged(object sender, SelectionChangedEven ......
WPF 设置图片圆角的3种方式
在WPF中,设置页面布局的时,遇到了设置图片圆角问题,试了以下几种方式,都能实现: 第一种:这种图片是跟着border设置的圆角而改变的,自适应图片的大小 <Border x:Name="b_IsChecked" Width="48" Height="48" HorizontalAlignment= ......
WPF在EnsureHandle之前设置WindowStyle提升性能
本文将记录一个在 WPF 应用程序启动过程中的性能优化点。如果一个窗口需要设置 WindowStyle 属性,那么在窗口 EnsureHandle 之前,设置 WindowStyle 属性将会比在 EnsureHandle 之后设置快不少 在 dotTrace 里的一次测量在窗口 EnsureHan ......
WPF引入Metro后默认样式被更改,想使用原始样式的办法
参考WPF引入HandyControl后默认样式被更改,想使用原始样式的办法_冰激凌克星的博客-CSDN博客 <Button Style="{x:Null}" Content="取消HandyControl样式" Margin="20"/> 将Style设置成null ......
WPF使用Blazor的快速案例
下面我们将讲解在WPF中使用Blazor,并且使用Blazor做一些文件编辑操作,下面是需要用到的东西 - WPF - Blazor - Masa Blazor - Monaco ## 安装Masa Blazor模板 使用`CMD`指令安装模板 ```shell dotnet new install ......
WPF 动态更改启动窗体startupUri
第一步: 在 App.xaml 里,把 StartupUri=""去掉,改成 Startup="Application_Startup" 第二步: 在 App.xaml.cs里,增加 Application_Startup 事件: private void Application_Startup(o ......
C#、WPF的XAML中特殊字符的转义代码
xmal文件中,写入对应转义符可以实现对应功能 字符 转义字符 & & > > < < " " ’ ' { {}{ 回车 
或者 换行 
或者 Tab 	或者	 空格  或者  如: <Border Corne ......
界面控件DevExpress WPF Sankey Diagram组件,让大数据流可视化更轻松!
使用DevExpress Sankey Diagram(桑基流程图)控件,开发者可以非常轻松地可视化大数据的数据流。 P.S:DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础 ......
界面控件Telerik UI for WPF——Windows 11主题精简模式提升应用体验
Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。Telerik UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio工具箱中。 随 ......
WPF Textblock标签下 Run标签-----显示空白或者消除空白
消除Run之前的空白是将Run标签布局时头尾相连,如下: <TextBlock > <Run Text="A"></Run> <Run Text="B"></Run> </TextBlock> 消除Run之间连接的空白格式,方式如下: <TextBlock > <Run Text="A"></Run ......
WPF设置传参、点击按钮改变长度
前台代码 ``` ``` 后台代码 ``` private DelegateCommand _Command; public DelegateCommand Command => _Command ?? (_Command = new DelegateCommand(ExecuteCommand, ......
C# wpf style中实现可定制的自定义标题栏
wpf自定义标题栏系列 第一章 自定义标题栏 第二章 添加窗口阴影 第三章 style中定义标题栏 第四章 style使用参数及模板定义标题栏(本章) 文章目录 wpf自定义标题栏系列 前言 一、如何实现 1、定义参数 2、引用模板 3、使用ContentPresenter 4、添加拖动功能 5、添 ......