dyphire / mpv-scripts

userscripts for mpv
MIT License
68 stars 5 forks source link

open_dialog.lua 弹窗置顶 #26

Closed verygoodlee closed 7 months ago

verygoodlee commented 7 months ago

dyphire/mpv-config#84

dyphire commented 7 months ago

测试了下,发现你把文件对话框的实现方式改了啊,对话框也变糊了( 在原有的实现方式上无法实现此功能吗?

verygoodlee commented 7 months ago

是Microsoft.Win32.OpenFileDialog换成System.Windows.Forms.OpenFileDialog导致变糊吗, 我2k屏用的100%缩放所以看不出有变糊

dyphire commented 7 months ago

是 Microsoft.Win32.OpenFileDialog 换成 System.Windows.Forms.OpenFileDialog 导致变糊吗, 我 2k 屏用的 100% 缩放所以看不出有变糊

在我的 2K 和 4K 屏上使用的 DPI 缩放下显示很糊,之前实现的文件夹对话框就有这毛病

verygoodlee commented 7 months ago

Microsoft.Win32.OpenFileDialog看文档也有ShowDialog(Window)方法,但是不知道为啥会报错,找不到一个参数的ShowDialog方法 image

dyphire commented 7 months ago

就这样吧,Microsoft.Win32.OpenFileDialog 指定不了 owner。目前的实现很好,dpi 问题是一个 powershell 的问题,与此无关

我比较纠结的是文件夹对话框之前的实现方式很不优雅,如果抛弃 win7 支持,改用 powershell7 会有更简单的实现方式

verygoodlee commented 7 months ago

本身OpenFileDialog是不支持选择文件夹的,用反射强行改,确实不优雅, 抛弃win7也没啥大不了,毕竟mpv也抛弃win7了

dyphire commented 7 months ago

就这样吧,我会在合并之后重构文件夹对话框的实现

dyphire commented 7 months ago

在提交 https://github.com/dyphire/mpv-scripts/commit/a28d587963a2d97d0b50a729379c5f8561bf6314 重构文件夹对话框的实现,使用 FolderBrowserDialog 调用原生对话框

不过这个方式有个缺点就是 PowerShell 调用的对话框样式是老系统的,只有 PowerShell 7 调用的才是新系统的对话框样式。主要影响 win7 用户

使用 PowerShell 7 还有个优势就是冷启动变快了

dyphire commented 7 months ago

又想到一个事:是不是应该把 url 对话框功能实现删掉,打开 url 的功能完全可以通过剪贴板功能做到(已经实现了)