Avalonia-.NET 的跨平臺 UI 框架 來自 【沐鳴2】網址 生態圈
阿新 • • 發佈:2022-04-12
簡介
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】網址 生態圈越來越好!