Skip to content
New issue

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

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

Already on GitHub? Sign in 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 里加一个系统判断即可。大概的逻辑就是这样的,具体的细节改动需要师傅自己去学习改动了哈

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

No branches or pull requests

3 participants