当前位置:   article > 正文

Avalonia-.NET 的跨平台 UI 框架

avalonia android 项目

简介

Avalonia 是 dotnet 的跨平台 UI 框架,提供灵活的样式系统并支持 Windows、Linux、macOS 等多种操作系统。Avalonia 已经成熟并且可以投入生产。我们还在测试版中支持 iOS、Android,并在早期阶段通过 WASM 支持浏览器。

使用

WPF中,当你在xaml文件中定义完UI并设置x:Name就可以在后台中直接使用对象名称进行操作.那是因为vs在你设计时自动生成了.g.i.cs文件(你可以在/obj中看到)

而ava中不同,你需要在后台中自己Get到这个UI对象(与Android类似): 例如:

axaml中定义一个名称为 TB_Title的TextBlock文本标签:

<TextBlock x:Name="TB_Title" HorizontalAlignment="Center" Foreground="White" FontSize="14" VerticalAlignment="Center" Margin="10,0,0,10" Text="My Avalonia Desktop App"/>

在cs中定义并更改标签内容:

  1. TextBlock TB_Title = this.Get<TextBlock>("TB_Title");
  2. TB_Title.Text = "嘻嘻";

这里就用到了this.Get(string Name)方法

T:表示对象类型 Name:为x:Name中定义的名称

注意:在后台查找UI对象 若不是局部变量 应需考虑 时序问题 否则在使用时对象可能是null

建议将所有的控件优先查找出来(如果你控制得比较好可以不用..)

有几点比较坑的地方:

1.直接在axaml中定义事件有时候不会成功,可以在后台中定义,例如:

  1. <Button x:Name="btn" Click="Btn_Click">Click Me</Button>
  2. void Btn_Click(object sender, RoutedEventArgs args)
  3. {
  4.    //...
  5. }

若不成功可以:

this.Get<Button>("btn").Click+=Btn_Click;

当然还有很多更加强大的功能,请查阅官方文档

936b52afa59c94f776935cfa8f52726f.png

文档地址

https://docs.avaloniaui.net/docs/getting-started/programming-with-avalonia

Github地址

https://github.com/AvaloniaUI/Avalonia 

最后大家如果喜欢我的文章,还麻烦给个关注并点个赞, 希望net生态圈越来越好!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号