v2rayN icon indicating copy to clipboard operation
v2rayN copied to clipboard

[Feature request]: 用WPF重写

Open interestingdarkness opened this issue 3 years ago • 15 comments

相关问题

WinForm设计器不能很好地在HiDPI下工作,在修改v2rayN代码的过程中容易破坏UI布局,同时设计器自动生成的大量代码也不利于版本记录

描述你希望的解决方案

用WPF重写

描述你所考虑的替代方案

WPF

我确认已查询历史issues

  • [x] 是

interestingdarkness avatar Aug 16 '22 06:08 interestingdarkness

鄙人已经提交两个PR https://github.com/2dust/v2rayN/pull/2557 升级到更简洁的SDK-style新项目格式 https://github.com/2dust/v2rayN/pull/2560 重写v2rayUpgrade

ghost avatar Aug 16 '22 06:08 ghost

确实有重构界面的计划

  1. 迁移到.NET6
  2. 用WPF或其他重构界面

重构界面需要考虑各个方面因素

  1. 使用习惯一致
  2. 运行速度快
  3. 占用资源少点
  4. 解决主题切换

2dust avatar Aug 18 '22 12:08 2dust

您是推荐用WPF重构?

2dust avatar Aug 18 '22 12:08 2dust

用Blazor(Server)重构也可以

Blazor的优点

基于现在流行的Web前端技术,HTML+CSS,方便其他人开发 跨平台,UI在浏览器中,程序本身只作为后端,资源占用小

WPF的优点

传统桌面技术,允许从现在的WinForms逐步重构

个人推荐Blazor重构,缺点是基本需要重写,工作量大

ghost avatar Aug 18 '22 13:08 ghost

Web客户端目前没有考虑(已经有很多了) WPF可以一试

2dust avatar Aug 21 '22 12:08 2dust

十分建议用WPF美化界面,并且WPF技术已经很成熟,例如visual studio的UI便是使用WPF制作的

Domado avatar Aug 28 '22 03:08 Domado

我自己的分支很早之前(3.29)就升到.net 5到现在的.net6.0,单纯升级框架上来不会有很多麻烦,我看预发布的包,项目结构已经改了不少不了,后面只需要在兼容下.net6基本就可以,如果只是说为了hdpi的显示,那么升级到.net6就可以支持,但如果想用wpf,那么界面基本就是重构了,wpf和winform的界面设计可是完全不一样的,改动会很大,而且有个问题,就是.net6的框架包太大了,如果包含框架,压缩后也得50m以上,有点重,当然这不是什么大问题。

我是期望能用wpf重构界面的,那确实好看很多,我自己分支很老而且也自定义了很多,合不进来,但如果想升级框架可以去看下这个提交,少踩些坑,https://github.com/blackier/v2rayN/commit/eb6b32542577707e32bd52edc81daca89eca7817

blackier avatar Aug 31 '22 02:08 blackier

我自己的分支很早之前(3.29)就升到.net 5到现在的.net6.0,单纯升级框架上来不会有很多麻烦,我看预发布的包,项目结构已经改了不少不了,后面只需要在兼容下.net6基本就可以,如果只是说为了hdpi的显示,那么升级到.net6就可以支持,但如果想用wpf,那么界面基本就是重构了,wpf和winform的界面设计可是完全不一样的,改动会很大,而且有个问题,就是.net6的框架包太大了,如果包含框架,压缩后也得50m以上,有点重,当然这不是什么大问题。

我是期望能用wpf重构界面的,那确实好看很多,我自己分支很老而且也自定义了很多,合不进来,但如果想升级框架可以去看下这个提交,少踩些坑,blackier@eb6b325

改用WPF并非需要完全重构,可以同时使用WinForm和WPF,逐步重构 如果不是为了跨平台,升级.NET到.NET6意义不大 在下被合并的PR升级语言版本到C# 11,可以在.NET 4.8上使用部分C# 11新特性

ghost avatar Aug 31 '22 03:08 ghost

我自己的分支很早之前(3.29)就升到.net 5到现在的.net6.0,单纯升级框架上来不会有很多麻烦,我看预发布的包,项目结构已经改了不少不了,后面只需要在兼容下.net6基本就可以,如果只是说为了hdpi的显示,那么升级到.net6就可以支持,但如果想用wpf,那么界面基本就是重构了,wpf和winform的界面设计可是完全不一样的,改动会很大,而且有个问题,就是.net6的框架包太大了,如果包含框架,压缩后也得50m以上,有点重,当然这不是什么大问题。 我是期望能用wpf重构界面的,那确实好看很多,我自己分支很老而且也自定义了很多,合不进来,但如果想升级框架可以去看下这个提交,少踩些坑,blackier@eb6b325

改用WPF并非需要完全重构,可以同时使用WinForm和WPF,逐步重构 如果不是为了跨平台,升级.NET到.NET6意义不大 在下被合并的PR升级语言版本到C# 11,可以在.NET 4.8上使用部分C# 11新特性

界面这块要用wpf的话,一改基本就要全改了,现在的界面逻辑,耦合的挺严重的。 即使升级到wpf,跨平台也很难,代码里其实调了很多winapi的,还包括一些第三方的软件,这些很不好跨平台。

blackier avatar Aug 31 '22 03:08 blackier

可以考虑WPF 使用MaterialDesign https://github.com/MahApps/MahApps.Metro https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit

2dust avatar Aug 31 '22 12:08 2dust

使用WPF重构clashN,大家可以先试用下WPF的体验 https://github.com/2dust/clashN/releases/tag/2.0

2dust avatar Oct 01 '22 13:10 2dust

使用WPF重构clashN,大家可以先试用下WPF的体验 https://github.com/2dust/clashN/releases/tag/2.0

快啊,比wpf原生的好看不少,就布局能优化好点就更漂亮了,控件的宽高比列之类。

blackier avatar Oct 02 '22 15:10 blackier

使用WPF重构clashN,大家可以先试用下WPF的体验 https://github.com/2dust/clashN/releases/tag/2.0

快啊,比wpf原生的好看不少,就布局能优化好点就更漂亮了,控件的宽高比列之类。

欢迎PR

2dust avatar Oct 03 '22 00:10 2dust

使用WPF重构clashN,大家可以先试用下WPF的体验 https://github.com/2dust/clashN/releases/tag/2.0

快啊,比wpf原生的好看不少,就布局能优化好点就更漂亮了,控件的宽高比列之类。

欢迎PR

哈哈,我等v2ayN,到时候看你怎么整

blackier avatar Oct 08 '22 15:10 blackier

https://github.com/2dust/clashN/releases/tag/2.3 基本调整好了 好看了,但是占用资源更多了

2dust avatar Oct 09 '22 13:10 2dust

https://github.com/2dust/v2rayN/releases/tag/6.3

2dust avatar Jan 05 '23 02:01 2dust