请注意本项目需要 AvaloniaUI 版本 >= 11.x
Stylet.Avalonia
是原来Stylet项目对AvaloniaUI 框架的适配。具体介绍请查看Stylet项目介绍
第一步:创建一个Avalonia框架类型的项目
第二步:nuget 管理器安装 Stylet.Avalonia
包
第三步:创建ShellViewModel
类,以及名为ShellView
的窗口组件(Avalonia Window
类型),其内容如下【其实啥也没动】
- ShellViewModel.cs
public class ShellViewModel
{
}
- ShellView.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="800" d:DesignHeight="450"
x:Class="Avalonia.NETCoreApp1.ShellView"
Title="ShellView">
Welcome to Avalonia!
</Window>
- ShellView.axaml.cs
public partial class ShellView : Window
{
public ShellView()
{
InitializeComponent();
}
}
第四步:找到并打开App.axaml.cs
文件,使其继承于StyletApplication<T>
其中T
为任一ViewModel
,当前设置为第三步创建的ShellViewModel
,修改后内容如下
public partial class App : StyletApplication<ShellViewModel>
{
public override void Initialize()
{
AvaloniaXamlLoader.Load(this);
base.Initialize(); // 初始化stylet,不能去掉
}
}
第五步:运行。快乐的写代码吧!
更多资料点击这里跳转查看。同时,可以查看本仓库中存放的示例项目。
请将avalonia 升级到11.x,升级指南
0.将nuget
包XamlNameReferenceGenerator
移除(新版本已内置)
1.找到并打开App.axaml
文件,移除AppBootstrapper
资源,即:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<s:ApplicationLoader>
<s:ApplicationLoader.Bootstrapper>
<local:AppBootstrapper />
</s:ApplicationLoader.Bootstrapper>
</s:ApplicationLoader>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
2.找到并打开App.axaml.cs
文件,使其继承于StyletApplication<T>
, 此时App.axaml.cs
成为了原来AppBootstrapper<ShellViewModel>
, 将原来的AppBootstrapper.cs
的内容移到App.axaml.cs
文件中即可。
其注意:App.axaml.cs
文件内Initialize()
方法必须调用base.Initialize();