安装
安装.net 8
安装avalonia模板
dotnet new install Avalonia.Templates
创建项目
dotnet new avalonia.app -o GetStartedApp
安装c# dev kit
插件和Avalonia for VSCode Community
dotnet run
运行
修改代码
MainWindow.axaml
<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d" d:DesignWidth="200" d:DesignHeight="450"x:Class="GetStartedApp.MainWindow"Title="GetStartedApp"><TextBlock Text="My Text" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Window>
继续修改代码
<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d" d:DesignWidth="200" d:DesignHeight="450"x:Class="GetStartedApp.MainWindow"Title="GetStartedApp"><Button HorizontalAlignment="Center">Calculate</Button>
</Window>
增加布局
<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d" d:DesignWidth="200" d:DesignHeight="450"x:Class="GetStartedApp.MainWindow"Title="GetStartedApp"><StackPanel><Border Margin="5" CornerRadius="10"Background="LightBlue"><TextBlock Margin="5"FontSize="24" HorizontalAlignment="Center"Text="温度转换器"></TextBlock></Border><Grid ShowGridLines="True" Margin="5" ColumnDefinitions="120, 100" RowDefinitions="Auto, Auto, Auto"><Label Grid.Row="0" Grid.Column="0" Margin="10">Celsius</Label><TextBox Name="celsius" Grid.Row="0" Grid.Column="1" Margin="0 5" Text="0"/><Label Grid.Row="1" Grid.Column="0" Margin="10">Fahrenheit</Label><TextBox Name="fahrenheit" Grid.Row="1" Grid.Column="1" Margin="0 5" Text="0"/><Button Grid.Row="2" Grid.Column="1" Margin="0 5" Click="ButtonClicked">Calculate</Button></Grid> </StackPanel>
</Window>
绑定点击事件,修改MainWindow.axaml.cs
public void ButtonClicked(object source, RoutedEventArgs args)
{Debug.WriteLine("Click!");Debug.WriteLine($"Click! Celsius={celsius.Text}");if (double.TryParse(celsius.Text, out double C)){var F = C * (9d / 5d) + 32;fahrenheit.Text = F.ToString("0.0");}else{celsius.Text = "0";fahrenheit.Text = "0";}
}
参考
https://docs.avaloniaui.net/zh-Hans/docs/welcome