Avalonia学习1:下载通用皮肤SukiUI,并在windows上启动成功

本文讲述了作者在尝试使用Avalonia开发跨平台桌面应用时遇到的问题,包括VS2022版本升级、WSL安装难题,以及如何通过重命名launchSettings.json解决启动问题。最终成功在Windows上运行并展示了SukiUI。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、引言       

2、碰到的问题

1、下载下拉VS2022老版本的用不了。

2、升级后,发现没有装wsl,导致启动不了,但wsl又由于国内的关系安装不了,怎么办呢,


1、引言       

       最近在想有没有什么可以开发在Linux下运行的桌面软件,本人使用过C#,Java,两种语言,C#中又使用过WPF开发过客户端,因此想有没有什么C#的,可以开发在Windows和Linux下都可以运行的桌面,搜索到avalonia,发现都符合我现有的要求,而且社区也比较活跃,只是中文文档较少。而且有找到它相对于的皮肤SukiUI。网络上也有人介绍过该UI。

经过几天业余时间捣鼓这个,终于已经能发布到deepin(深度deepin)上进行展示了。(如上图)

上SUkiUI的地址:https://github.com/kikipoulet/SukiUI

大家想学习的可以下载来看看。

2、碰到的问题

不过走通这个流程也是比较坎坷的,碰到了比较多的问题。

1、下载下拉VS2022老版本的用不了。

        必须要升级到net8.0

2、升级后,发现没有装wsl,导致启动不了,但wsl又由于国内的关系安装不了,怎么办呢,

        那就把wsl先去掉,通过重命名称,launchSettings.json,这个文件会让你通过wsl启动项目,因此只有把这个重命名,就不会走wsl了,只会走Windows的启动模式,后续如果你想通过wsl直接到Linux上运行,把这个名称改回来就可以了。如下图:

至此已经可以在Windows上跑起来,并能看到效果。如下图(Windows上的效果):

后续会发布文章,怎么把这个发布到deepin的Linux上,敬请期待

### AvaloniaSukiUI使用教程 #### 安装依赖项 为了开始使用AvaloniaSukiUI,首先需要安装必要的工具链创建一个新的Avalonia项目。可以通过命令行执行以下操作来设置开发环境[^3]: ```bash dotnet new avalonia.app -o MyAvaloniaApp cd MyAvaloniaApp ``` 接着,在`MyAvaloniaApp`目录下打开解决方案文件(`*.sln`),通过NuGet包管理器添加对[SukiUI](https://gitcode.com/gh_mirrors/su/SukiUI)[^1]的支持。 #### 配置主题样式 完成上述步骤之后,可以在项目的资源字典中引入SukiUI的主题配置。编辑`Assets/App.xaml`文件,加入如下XAML代码片段以应用SukiUI提供的视觉风格: ```xml <Application xmlns="https://github.com/avaloniaui" xmlns:suki="clr-namespace:SukiUI;assembly=SukiUI"> <Application.Styles> <!-- 导入默认的浅色模式 --> <StyleInclude Source="avares://SukiUI/Themes/Light.xaml"/> <!-- 或者导入深色模式 --> <!--<StyleInclude Source="avares://SukiUI/Themes/Dark.xaml"/>--> </Application.Styles> </Application> ``` #### 编写示例页面 下面是一个简单的例子,展示了如何利用SukiUI构建一个具有按钮点击事件响应功能的小部件。将此代码放置于新建立的应用程序主窗口类(通常是`MainWindow.axaml`)内: ```xml <Window xmlns="https://github.com/avaloniaui" Title="HelloWorld with SukiUI" Width="800" Height="450"> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock Text="Welcome to the world of SukiUI!" FontSize="24"/> <Button Content="Click Me!" Command="{Binding ClickCommand}" Margin="0,20,0,0"/> </StackPanel> </Window> ``` 同时还需要为该视图模型编写相应的逻辑处理部分。假设已经有一个名为`MainViewModel.cs`的数据上下文,则应在其内部定义好对应的命令属性以便与前端交互: ```csharp using ReactiveUI; public class MainViewModel : ViewModelBase { public MainViewModel() { ClickCommand = ReactiveCommand.Create(() => MessageBox.Show("You clicked me!", "Message", MessageBoxButton.OK)); } public ICommand ClickCommand { get; } } ``` 以上就是关于如何集成以及初步运用SukiUI进行跨平台桌面应用程序开发的大致流程介绍。希望这些信息能够帮助到正在探索这一领域的开发者们。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值