Citrus Avalonia 项目教程
1. 项目的目录结构及介绍
Citrus Avalonia 项目的目录结构如下:
Citrus.Avalonia/
├── src/
│ ├── Citrus.Avalonia/
│ │ ├── Assets/
│ │ ├── Controls/
│ │ ├── Models/
│ │ ├── Themes/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Citrus.Avalonia.csproj
│ ├── Citrus.Avalonia.Sandbox/
│ │ ├── SandboxApp.xaml
│ │ ├── SandboxApp.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Citrus.Avalonia.Sandbox.csproj
├── .gitignore
├── Citrus.Avalonia.sln
├── README.md
目录结构介绍
-
src/Citrus.Avalonia/
: 主项目目录,包含应用程序的主要代码和资源。Assets/
: 存放静态资源文件,如图片、字体等。Controls/
: 自定义控件目录。Models/
: 数据模型目录。Themes/
: 主题文件目录。App.xaml
和App.xaml.cs
: 应用程序的入口文件。MainWindow.xaml
和MainWindow.xaml.cs
: 主窗口文件。Citrus.Avalonia.csproj
: 项目文件。
-
src/Citrus.Avalonia.Sandbox/
: 沙箱项目目录,用于展示和测试控件。SandboxApp.xaml
和SandboxApp.xaml.cs
: 沙箱应用程序的入口文件。MainWindow.xaml
和MainWindow.xaml.cs
: 沙箱主窗口文件。Citrus.Avalonia.Sandbox.csproj
: 沙箱项目文件。
-
.gitignore
: Git 忽略文件配置。 -
Citrus.Avalonia.sln
: 解决方案文件。 -
README.md
: 项目说明文档。
2. 项目的启动文件介绍
主项目启动文件
-
App.xaml
:<Application xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Citrus.Avalonia.App"> <Application.Styles> <StyleInclude Source="avares://Citrus.Avalonia/Themes/Citrus.xaml"/> </Application.Styles> </Application>
-
App.xaml.cs
:using Avalonia; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using Citrus.Avalonia.Views; namespace Citrus.Avalonia { public class App : Application { public override void Initialize() { AvaloniaXamlLoader.Load(this); } public override void OnFrameworkInitializationCompleted() { if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = new MainWindow(); } base.OnFrameworkInitializationCompleted(); } } }
沙箱项目启动文件
-
SandboxApp.xaml
:<Application xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Citrus.Avalonia.Sandbox.SandboxApp"> <Application.Styles> <StyleInclude Source="avares://Citrus.Avalonia/Themes/Citrus.xaml"/> </Application.Styles> </Application>
-
SandboxApp.xaml.cs
: