ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Avalonia 示例项目上手指南:clone 下来先看哪个 demo

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),仅供参考
返回列表