Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

请问如何把win样式的窗口控制按钮关闭? #2059

Open
aaddmin1122345 opened this issue Oct 25, 2024 · 6 comments
Open

请问如何把win样式的窗口控制按钮关闭? #2059

aaddmin1122345 opened this issue Oct 25, 2024 · 6 comments

Comments

@aaddmin1122345
Copy link

我是linux系统的,我更改了index.js文件,开启了linux自带的标题栏,但是win样式的无法关闭,如何解决?

image

@aaddmin1122345
Copy link
Author

我目前测试到的问题是,我在index.js里面添加删除或者隐藏这个元素的代码,程序重新启动会变为mac的启动那样,导致我无法启动然后我采取了在main.css里面添加这段语句,但这并不是一个很好的办法,所以我应该怎么做?

.uiOperate_win-ui-op-wrapper__BWjiU {
display: none !important;
}

@aaddmin1122345
Copy link
Author

目前我想到的一个办法是,在 index.js 添加 一个 isLinux 判断,如果是 linux 就把 BrowserWindow 的 frame 属性更改为 true,这样程序的标题栏就会调用系统自带的,那么就只剩下一个隐藏 win 样式控制开关,我的想法是在 .github/workflows 工作流里面添加一条规则,检查是否带 linux 标签,如果是就把隐藏的 css 代码添加到 main.css 里面,我查询 chat gpt,它给出了这样的一个示例


- name: Modify CSS for Linux
  if: contains(github.ref, 'linux')
  run: |
    # 假设你的 CSS 文件在 ./styles/style.css
    CSS_FILE="./styles/style.css"
    
    # 添加或替换 CSS 规则
    echo "/* Linux Specific Styles */" >> $CSS_FILE
    echo ".linux-specific { background-color: lightblue; }" >> $CSS_FILE

我不太了解 github action 的工作机制,不知我的这个想法是否可行?

这样做的优点是:

  • 和其它 linux 应用程序不会存在割裂感,拥有统一的外观样式,也不会存在多余的控制窗口按钮,使其更加美观

@Vernon818
Copy link
Collaborator

感谢师傅反馈,我找技术师傅看看,处理后会在这里给您回复

@b1rdfree
Copy link
Collaborator

如果师傅只是不想出现 win 或者 mac 的窗口控制功能,只需要在 app/renderer/src/main/src/components/layout/UILayout.tsx 文件中,把MacUIOp或WinUIOp组件注释即可

@aaddmin1122345
Copy link
Author

如果师傅只是不想出现 win 或者 mac 的窗口控制功能,只需要在 app/renderer/src/main/src/components/layout/UILayout.tsx 文件中,把MacUIOp或WinUIOp组件注释即可

好的,感谢回复,那么能否直接在代码层面改动呢,这样的话,linux直接打开就行了,这是没有任何修改,在linux上打开的样子,可以看到,未修改的程序标题栏是win样式,和别的应用程序格格不入

image

接下来是按照我说的办法修改后的,两者进行对比,可以看到的是,标题栏采用系统样式的确实比较美观整洁,并且可以使用系统的一部分功能,例如-让窗口永远保持在最上面

image

如果不用系统的标题栏,是没有这个功能的,下面图是两者的对比

image

感谢回复

@b1rdfree
Copy link
Collaborator

如果师傅只是不想出现 win 或者 mac 的窗口控制功能,只需要在 app/renderer/src/main/src/components/layout/UILayout.tsx 文件中,把MacUIOp或WinUIOp组件注释即可

好的,感谢回复,那么能否直接在代码层面改动呢,这样的话,linux直接打开就行了,这是没有任何修改,在linux上打开的样子,可以看到,未修改的程序标题栏是win样式,和别的应用程序格格不入

image

接下来是按照我说的办法修改后的,两者进行对比,可以看到的是,标题栏采用系统样式的确实比较美观整洁,并且可以使用系统的一部分功能,例如-让窗口永远保持在最上面

image

如果不用系统的标题栏,是没有这个功能的,下面图是两者的对比

image

感谢回复

上面的注释就是代码的改动,MacUIOp主要在判断为 mac 系统时展示控制元素,WinUIOp主要负责判断为 win 系统或 linux 系统时展示控制元素,注释掉后就可以了,如果需要 linux 使用原始的控制顶部,在 index.js 里加一个系统判断即可。大概的逻辑就是这样的,具体的细节改动需要师傅自己去学习改动了哈

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants