Live Avalonia 项目教程
1. 项目的目录结构及介绍
Live Avalonia 项目的目录结构如下:
Live.Avalonia/
├── LiveAvalonia/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Program.cs
│ ├── LiveAvalonia.csproj
│ └── ...
├── LiveAvalonia.Sample/
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── Program.cs
│ ├── LiveAvalonia.Sample.csproj
│ └── ...
├── .gitignore
├── Directory.Build.props
├── LICENSE
├── LiveAvalonia.sln
├── README.md
└── version.json
目录结构介绍
-
LiveAvalonia/
: 主项目目录,包含主要的应用程序文件和配置。App.xaml
和App.xaml.cs
: 应用程序的入口文件。MainWindow.xaml
和MainWindow.xaml.cs
: 主窗口的定义文件。Program.cs
: 应用程序的启动文件。LiveAvalonia.csproj
: 项目文件。
-
LiveAvalonia.Sample/
: 示例项目目录,包含示例应用程序文件和配置。App.xaml
和App.xaml.cs
: 示例应用程序的入口文件。MainWindow.xaml
和MainWindow.xaml.cs
: 示例主窗口的定义文件。Program.cs
: 示例应用程序的启动文件。LiveAvalonia.Sample.csproj
: 示例项目文件。
-
.gitignore
: Git 忽略文件。 -
Directory.Build.props
: MSBuild 属性文件。 -
LICENSE
: 项目许可证文件。 -
LiveAvalonia.sln
: 解决方案文件。 -
README.md
: 项目说明文件。 -
version.json
: 版本信息文件。
2. 项目的启动文件介绍
启动文件
Program.cs
: 这是应用程序的启动文件,包含Main
方法,负责启动应用程序。
using System;
using Avalonia;
using Avalonia.ReactiveUI;
namespace LiveAvalonia
{
class Program
{
// Initialization code. Don't use any Avalonia, third-party APIs or any
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
// yet and stuff might break.
public static void Main(string[] args) => BuildAvaloniaApp()
.StartWithClassicDesktopLifetime(args);
// Avalonia configuration, don't remove; also used by visual designer.
public static AppBuilder BuildAvaloniaApp()
=> AppBuilder.Configure<App>()
.UsePlatformDetect()
.LogToTrace()
.UseReactiveUI();
}
}
启动流程
Main
方法调用BuildAvaloniaApp
方法来配置 Avalonia 应用程序。BuildAvaloniaApp
方法配置应用程序并启动桌面生命周期。
3. 项目的配置文件介绍
配置文件
LiveAvalonia.csproj
: 这是项目的主要配置文件,包含项目的依赖项、编译选项和其他设置。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="0.10.0" />
<PackageReference Include="Avalonia.ReactiveUI" Version="0.10.0" />
</ItemGroup>
<ItemGroup>
<Watch Include="**\*.xaml" />
</ItemGroup>
</Project>