1. 程式人生 > 其它 >Avalonia-.NET 的跨平臺 UI 框架 來自 【沐鳴2】網址 生態圈

Avalonia-.NET 的跨平臺 UI 框架 來自 【沐鳴2】網址 生態圈

簡介

Avalonia 是 dotnet 的跨平臺 UI 框架,提供靈活的樣式系統並支援 Windows、Linux、macOS 等多種作業系統。Avalonia 已經成熟並且可以投入生產。我們還在測試版中支援 iOS、Android,並在早期階段通過 WASM 支援瀏覽器。

使用

【沐鳴2】在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中定義並更改標籤內容:

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

這裡就用到了this.Get(string Name)方法

T:表示物件型別 Name:為x:Name中定義的名稱

注意:在後臺查詢UI物件 若不是區域性變數 應需考慮 時序問題 否則在使用時物件可能是null

建議將所有的控制元件優先查找出來(如果你控制得比較好可以不用..)

有幾點比較坑的地方:

1.直接在axaml中定義事件有時候不會成功,可以在後臺中定義,例如:

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

若不成功可以:

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

當然還有很多更加強大的功能,請查閱官方文件

文件地址

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

Github地址

https://github.com/AvaloniaUI/Avalonia 

 

最後大家如果喜歡我的文章,還麻煩給個關注並點個贊, 希望【沐鳴2】網址 生態圈越來越好!