Avalonia中用FluentAvalonia+DialogHost.Avalonia实现界面弹窗和对话框
本文是项目中关于 弹窗界面
设计的技术分享,通过 FluentAvalonia
+DialogHost.Avalonia
开源nuget包来实现项目中需要 弹框显示的界面
和所有的 对话框
的展示。
效果如下:
1.项目介绍
本项目是基于Avalonia的GPT的AI会话项目。采用的是最新稳定版本11.0.0-rc1.1。希望通过该项目了解和学习Avalonia开发的朋友可以在我的github上拉取代码,同时希望大家多多点点star。
https://github.com/raokun/TerraMours.Chat.Ava
V1.0版本
下载地址:V1.0版本win64下载地址
目前可用的第一个版本
功能:
- 最全的接口参数配置
- 支持反向代理
- 支持聊天记录的数据本地化存储
- 支持填写SystemMessage
2.扩展包介绍
1.DialogHost.Avalonia
这是一个用于Avalonia的弹框的扩展,可以通过使用 DialogHost.Avalonia
,把我们的界面或者对话框内容显示在最顶层,同时可以设置弹框后其他界面不能点击,避免用户误操作。
DialogHost.Avalonia
开源代码地址:DialogHost.Avalonia
2.FluentAvalonia
FluentAvalonia
提供多种UI 的Avalonia 的工具包,本文中我们只用到 ContentDialog
实现对话框式的设置界面。
FluentAvalonia
开源代码地址:FluentAvalonia
FluentAvalonia
文档地址:FluentAvaloniaDocs
3.实现数据库设置
数据库设置的界面效果:
1.创建数据库设置界面
创建数据库设置界面 DatabaseSettingsView.axaml
2.代码调用-弹窗
ShowDatabaseSettingsAsync
ShowDatabaseSettingsAsync
是弹窗方法,弹窗的内容是DatabaseSettingsView
代码如下:
private async Task ShowDatabaseSettingsAsync() {
Application.Current!.TryFindResource("My.Strings.DatabaseInfo", out object resource1);
var dialog = new ContentDialog() {
Title = resource1,
PrimaryButtonText = "OK"
};
dialog.Content = new DatabaseSettingsView();
await ContentDialogShowAsync(dialog);
}
- TryFindResource 获取语言