会员
周边
新闻
博问
闪存
赞助商
YouClaw
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Betta_Fish
??!
博客园
首页
新随笔
联系
订阅
管理
2026年5月11日
在 Avalonia 中编写高性能动画
摘要: 在 Avalonia 框架中,我们通常使用 XAML 编写动画。然而,实际上 Avalonia 中还存在另一套鲜为人知(?)的动画系统——Composition Animation(合成动画) 本文将介绍如何在 Avalonia 中编写合成动画,以及它相比普通 XAML 动画的优点
阅读全文
posted @ 2026-05-11 11:52 Betta_Fish
阅读(2854)
评论(9)
推荐(39)
2026年4月9日
为 Avalonia 启用平滑滚动与缩放
摘要: 为 Avalonia 启用平滑滚动与缩放 在 Avalonia 中,ScrollViewer 在鼠标滚轮下是没有平滑滚动的,看起来非常生硬。同时, ScrollViewer 也不支持平移、缩放等操作,这使得社区不得不使用为 PanAndZoom 等第三方控件 为此,我编写了 SmoothScroll
阅读全文
posted @ 2026-04-09 18:21 Betta_Fish
阅读(336)
评论(0)
推荐(3)
2025年12月16日
Avalonia源码解读:Grid(网格控件)
摘要: 在各类XAML UI框架中,Grid 是一种非常灵活且常用的布局控件,它可以创建复杂的用户界面布局。Grid 允许开发者通过定义行和列来组织界面元素,每个元素可以精确地放置在网格的特定区域内 本文以 Avalonia 框架为例,讲解 Grid 控件的工作原理
阅读全文
posted @ 2025-12-16 09:51 Betta_Fish
阅读(2319)
评论(4)
推荐(22)
2025年9月29日
BindingList的应用与改进
摘要: 在编写UI的过程中,我们通常使用ObservableCollection来监听列表的变化。然而,ObservableCollection只能在添加/移动/移除元素时通知界面,这意味着元素内部更改时,ObservableCollection是无法通知的 如果需要监听列表元素内部的更改,可以使用Syst
阅读全文
posted @ 2025-09-29 12:26 Betta_Fish
阅读(284)
评论(1)
推荐(2)
2025年8月25日
用代码写代码:使用Roslyn API构建语法树并应用于源生成器
摘要: 在上文构建源生成器的过程中,我们使用字符串直接插入代码。这样做固然方便快捷,但字符串需要手动格式化,且无法检测拼写错误,这对需要生成复杂结构的源生成器项目很不友好。 本文将介绍生成代码的另一种方式:使用Roslyn API构建语法树。 什么是语法树 (Syntax Tree)? 语法树是编译器用于理
阅读全文
posted @ 2025-08-25 21:27 Betta_Fish
阅读(290)
评论(4)
推荐(2)
C# 源生成器(Source Generator)入门
摘要: C#9 引入了一个强大的机制:源生成器(Source Generator)。通过创建源生成器,我们可以简化大量重复编写的代码,或是减少反射来获得更强的性能以及AOT支持 本文将介绍如何从零开始创建一个最简单的源生成器 创建生成器项目 创建一个SourceGeneratorDemo.Generator
阅读全文
posted @ 2025-08-25 19:35 Betta_Fish
阅读(2295)
评论(0)
推荐(2)
2025年8月7日
为Avalonia应用自动生成StyledProperty和DirectProperty
摘要: 最近学习了源生成器,遂仿照CommunityToolkit/Windows中的DependencyPropertyGenerator写了个生成器,可自动生成Avalonia中的StyledProperty和DirectProperty NuGet:https://www.nuget.org/pack
阅读全文
posted @ 2025-08-07 23:28 Betta_Fish
阅读(320)
评论(0)
推荐(1)
2024年6月29日
修复Win10上ListView样式不正确的问题
摘要: 在Windows 11下,使用WinUI2.6以上版本的ListView长这样: 然而到了Win10上,尽管其他控件的样式没有改变,但ListViewItem变成了默认样式(初代Fluent) 最重大的问题是,Win10上的HorizontalAlignment未被设置成Stretch,可能造成严重
阅读全文
posted @ 2024-06-29 10:59 Betta_Fish
阅读(172)
评论(0)
推荐(1)
C# 13前瞻:Extensions
摘要: 从C#3开始,拓展方法这一特性就得到了广泛的应用。 此功能允许你能够使用实例方法的语法调用某个静态方法,以下是一个获取/创建文件的静态方法: public static async Task<StorageFile> GetOrCreateFileAsync(this StorageFolder f
阅读全文
posted @ 2024-06-29 10:56 Betta_Fish
阅读(530)
评论(0)
推荐(3)
2023年11月26日
在WPF/MAUI中使用x:Bind
摘要: 最近逛GitHub的时候的时候,偶然看到了CompiledBindings这个库,据说可以实现和UWP中x:Bind一样的效果 原理也是在编译时生成相关代码,性能应该比自带的Binding好些 使用 从NuGet中安装: 安装完成后,可直接在XAML中使用x:Bind 使用方法类似于UWP,无需设置
阅读全文
posted @ 2023-11-26 15:55 Betta_Fish
阅读(303)
评论(0)
推荐(1)
公告