1。开发工作流程
与Avalonia合作是一种乐趣,Visual Studio、VS Code和Jetbrains的Rider中的预览效果很好;而且编译速度使测试和调整过程异常流畅!更不用说在运行时按 F12 时可用的Avalonia DevTools了,你可以像使用网络浏览器开发工具面板一样检查应用程序的逻辑和视觉树。
2。风格选择器
这个
选拔人 就风格能力而言,Avalonia与其XAML平台的邻居区别开来。的确,你可以使用 ControlTemplates(就像 WPF 一样)自定义控件中的所有内容,但这远不止于此!它具有 CSS 灵活性,可以根据各种标准将样式应用于元素。
一个简单的例子(应用程序中有很多!)是我们根据伪类(暴风雨、晴天、大风等)为 AnimatedImage 定义了一组动画。
<styleSelector= “ctl|animatedImage: Sunny” >
<Style.Animations>。
<动画...
</Animation>
</Style.Animations>
</Style>
这样,无论控件可能应用了什么其他样式,我们都可以通过设置伪类来对图像进行动画处理。
3.选项卡控件
主仪表板导航使用 Avalonia 的 TabControl。在这里,我们必须强调模板提供的巨大样式灵活性,可以完全改变控件的外观,还要强调通过使用 DataTemplates 显示内容,它会自动变成延迟加载控件,这意味着在用户选择选项卡上的 UI 才会加载。所有这些都使用开箱即用的控件!
4。可重复使用的用户控件
创建 UserControls 就像在 WPF 中工作一样,它是构建可重用控件的一种简单而非常强大的方式。其中一个很好的例子是主仪表板中使用的控件,每个框都是带有加载数据的属性的自定义 UserControl。值得一提的一个具体例子是 RadiationIndicator,它具有以下属性:值、最小值、最大值和 pillColor;并且可以重复使用 3 次。
5。风格组织
应用程序范围的样式在 resources.axaml 文件中组织得很好,该文件包含调色板以及按钮和菜单等常规控件的样式。文本和特定控件的样式位于Styles.axaml中,它再次利用选择器的强大功能来制作一组灵活的视觉设置,可在任何地方使用。
6。MVVM 社区工具包
这个
MVVM 工具包 提供了遵循模型-视图-视图模型模式所需的所有工具。它与 Avalonia 完美融合。使用属性定义 ViewModel 属性和命令可以节省时间,从而防止错误。帮助你制作 MVVM 应用程序的另一个选择是
反应式用户界面,它还与 Avalonia 完美融合。
7。图表
该应用程序使用来自的仪表
LiveCharts2 来编写 “湿度和风力” 仪表板控件。他们工作得很好。如果你需要图表,我们强烈建议你去看看!
8。路由
由于 MVVM 社区工具包没有过多的导航路由机制,我们为该应用程序精心设计了一个简单的路由机制,希望它能作为参考有所帮助。你可以在 controls/RouterPresenter 文件夹中查看。
9。应用程序模式
该应用程序有两种模式:连接和模拟。连接的选项从中获取实际数据
环境天气 API 获取当前信息,并从中获取数据
数学 API 加载预测。请注意,两者都需要 API。另一方面,模拟模式从 JSON 文件加载示例数据,并使用计时器模拟更改。虽然第一种模式确实显示了如何使用实际服务,但另一种模式为测试应用程序提供了一个安全的游乐场。
10。AOT
启用
提前编译 (AOT) 可以显著提高应用程序的性能。但是,AOT有一些限制,因此为了使该应用程序正常运行,我们必须将Newtonsoft.Json替换为System.Text.Json,并进行了其他一些调整,这些调整将在代码中包含的文档中详细说明。