一个跨平台的`ChatGPT`悬浮窗工具 |
您所在的位置:网站首页 › 苍耳品种有哪些 › 一个跨平台的`ChatGPT`悬浮窗工具 |
一个跨平台的ChatGPT悬浮窗工具
使用avalonia实现的ChatGPT的工具,设计成悬浮窗,并且支持插件。 如何实现悬浮窗?在使用avalonia实现悬浮窗也是非常的简单的。 实现我们需要将窗体设置成无边框 在Window根节点添加一下属性,想要在Linux下生效请务必添加SystemDecorations属性 ExtendClientAreaToDecorationsHint="True" ExtendClientAreaChromeHints="NoChrome" ExtendClientAreaTitleBarHeightHint="-1" SystemDecorations="None"这样我们的窗口就设置成了无边框。 然后我们还需要将窗体的大小固定, Height="50" MaxHeight="50" Width="{Binding Width}" MaxWidth="{Binding Width}"高度固定,宽度绑定到ViewModel的Width属性中,默认270, 接下来给出所有代码, 只需要设置无边框并且固定大小。悬浮窗的效果就达到了。 我们看看执行效果 就这样简单的悬浮窗写好了,我们使用一下悬浮窗的搜索功能 这个就是简单的使用效果,对比其他的工具,这个悬浮窗更简洁,并且跨平台和开源。 目前的项目结构。 plugin下面的项目是默认的插件,用于搜索系统文件(未完善) Gotrays.Suspension.Client则是实际的客户端。 Gotrays.Suspension.PlugIn则是插件定义的接口规范。 Gotrays.Update则是检查更新程序,用于更新主程序。 实现插件 plug-in插件模块,用于扩展功能。 插件开发 1. 创建插件项目在解决方案中创建一个类库项目,项目名称以Gotrays.Suspension.PlugIn.开头,例如Gotrays.Suspension.PlugIn.Test。 然后在项目中依赖Gotrays.Suspension.PlugIn类库。 2. 创建插件类在项目中创建一个类,继承Gotrays.Suspension.PlugIn.PlugInBase类,例如: using Gotrays.Suspension.PlugIn; public class SystemTools : PlugInBase { public SystemTools() { Name = "系统搜索"; // 获取system.png嵌入资源的Stream var stream = GetType().Assembly.GetManifestResourceStream("SystemTools.system.png"); if (stream == null) return; // 读取Stream到byte数组 var bytes = new byte[stream.Length]; var read = stream.Read(bytes, 0, bytes.Length); Icon = bytes; } // 搜索触发 public override async Task SearchAsync(string value) { // 打开系统搜索 Process.Start("explorer.exe", "search://" + value); await Task.CompletedTask; } protected override async Task InitAsync(IServiceCollection services){ // 插件首次加载时执行 } public override async Task BuilderServiceAsync(IServiceProvider provider) { // 这里可以得到服务提供者,可以通过服务提供者获取其他服务 } protected override void Selection() { // 当插件被选中时执行 } protected override void UnSelection() { // 当插件被取消选中时执行 } protected override async Task UnloadAsync() { // 当插件被卸载插件发生 } }工具服务会进行自动发现,无需手动注册。 只需要将程序集放置在./plug-in目录下即可。 服务会在一个程序集中发现所有的插件类,并且进行注册。 按照上面的方式非常的简单就集成了插件。 开源地址Gitee:https://gitee.com/gotrays/gotrays-suspension Github:https://github.com/239573049/Suspension 技术交流群:737776595 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |