Avalonia 示例项目上手指南:clone 下来先看哪个 demo
Avalonia 示例项目上手指南clone 下来先看哪个 demo【免费下载链接】AvaloniaDevelop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI项目地址: https://gitcode.com/GitHub_Trending/ava/AvaloniaAvalonia 是一个用 C# 和 XAML 编写桌面、嵌入式、移动和 WebAssembly 应用的 .NET 跨平台 UI 框架。它的仓库自带一组可直接运行的官方示例项目集中放在 samples/ 目录下。读完这篇你能清楚每个 demo 各自演示什么、该按什么顺序跑起来以及卡住时去哪个目录找答案。clone 下来第一个小时把 Sandbox 跑通别急着打开大工程先跑最小的那个samples/Sandbox/。它只有启动入口和一个主窗口Program.cs里就是标准的 Avalonia 应用启动流程DEBUG 下还会开启开发者工具。如果你能在这个工程里打开窗口、拖动一下说明工具链没问题后面遇到的报错才值得继续排查。从哪个 demo 开始学下面这张表按演示内容把示例工程归了个类路径都是仓库里的真实位置路径演示内容samples/ControlCatalog/按钮、输入、菜单到拖拽、手势的控件演示集samples/BindingDemo/数据绑定的各种形态模式、集合、验证、命令samples/MiniMvvm/一个仅几十行的 INotifyPropertyChanged 最小实现samples/VirtualizationDemo/列表虚拟化聊天流、展开列表、实验区samples/RenderDemo/动画、命中测试、RenderTargetBitmap、文字排版samples/GpuInterop/Direct3D 与 Vulkan 互操作samples/SafeAreaDemo/移动端刘海屏与安全区域适配想熟悉控件翻 ControlCatalog 的 Pages 目录ControlCatalog 是覆盖面最广的演示集左侧导航对应 samples/ControlCatalog/Pages/ 下的一个个页面Button、TextBox、Calendar、DragAndDrop、Gesture……每页就是一个独立场景。建议按自己业务里用得到的控件去翻对应页面而不是从头读到尾。它同时配有桌面、Android、iOS、浏览器等多个宿主工程如 samples/ControlCatalog.Desktop/、samples/ControlCatalog.Android/同一个 UI 代码在不同平台上分别跑正好能看出各平台的差异。想搞懂绑定从 BindingDemo 的 Basic 页签读起BindingDemo 的窗口用标签页组织内容Basic 页签里并排放着两种方式的对比——双向绑定、OneWay、OneTime以及集合元素的绑定后面的页签分别演示验证和命令。想理解绑定到底绑了什么这里比任何文档都直观因为每个输入框旁边都标了它的模式。绑定离不开视图模型层而 samples/MiniMvvm/ 把这一层做到了最小ViewModelBase里的RaiseAndSetIfChanged就是整个框架所有 demo 依赖的属性通知基础。ControlCatalog 也引用了它所以看懂这几十行代码后面所有示例的 ViewModel 都不再陌生。动手时还有两个轻量的地方值得看samples/Generators.Sandbox/ 演示源码生成器的用法samples/TextTestApp/ 则专门折腾文本排版对要精确控制文字渲染的人有用。列表滚动卡打开 VirtualizationDemo 找对照当你的列表滚动掉帧或者数据量大到必须虚拟化时VirtualizationDemo 给你三个真实场景聊天页模拟消息不断追加后的回底滚动展开列表测试大量可折叠项Playground 页则提供一组开关让你切换多选、Toggle 等选择行为见 Views/PlaygroundPageView.axaml。核心思路都一样——只实例化可见区域的控件滚动时复用。要接第三方图形库看 GpuInteropGpuInterop 解决的是另一类问题把 Direct3D 或 Vulkan 画布嵌进 Avalonia 窗口让第三方图形库直接在窗口上画。D3DDemo/ 对应 Windows 的 D3D11VulkanDemo/ 是跨平台的 Vulkan 路径程序启动时用DemoType枚举切换。如果你的目标是游戏引擎或自研渲染器接入重点看这两个子目录以及 src/Avalonia.OpenGL/ 里的 ExternalObjectsFeature 接口——它是拿到底层交换链与纹理句柄的约定。自绘控件前先逛一圈 RenderDemoRenderDemo 演示的是渲染管线本身动画与弹簧动画、几何命中测试、RenderTargetBitmap、可写位图、文字排版Pages 目录下的各页面。打算写自绘控件或自定义绘制时这些页面就是现成的参考实现。移动端刘海屏SafeAreaDemo 一眼看懂SafeAreaDemo 展示主视图如何避开刘海和手势条samples/SafeAreaDemo.Android/ 与 samples/SafeAreaDemo.iOS/ 两个独立工程让同一套逻辑在两台真机上对照验证适合做移动端的同学花十分钟看完。卡住时的两个去处docs/index.md 记录了构建流程与贡献指南遇到怎么编译整个仓库这类问题先看它tests/ 目录下的单元测试比如 Avalonia.Base.UnitTests则是理解框架行为的活字典——很多为什么控件是这样表现的问题都能在那里找到对应的断言。建议的学习顺序Sandbox 跑通环境ControlCatalog 翻控件BindingDemo 配合 MiniMvvm 吃透绑定之后再按需求转向 VirtualizationDemo、GpuInterop 或 RenderDemo不必每个都精读。【免费下载链接】AvaloniaDevelop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI项目地址: https://gitcode.com/GitHub_Trending/ava/Avalonia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

智能眼镜OTA升级:跨生态手表健康数据接入实践

智能眼镜OTA升级:跨生态手表健康数据接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/7 7:23:18 阅读更多 →
人形机器人价格差背后:从关节到运动控制的成本拆解

人形机器人价格差背后:从关节到运动控制的成本拆解

人形机器人行业里,价格从来不是单纯的数字。宇树被许多报道用“腰斩”来形容,另一侧,智元以更高的开价进入市场,这两条信息放在一起,很多人的第一反应是:谁在走性价比路线,谁在吃品牌溢价。但如…

2026/11/8 20:51:07 阅读更多 →
基于Flask构建可视化数据库查询系统:从原理到实战

基于Flask构建可视化数据库查询系统:从原理到实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 17:35:19 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/11 17:16:37 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/11 17:16:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻