material-ui 提供一种指定打印默认主题的方法,

n1bvdmb6  于 6个月前  发布在  其他
关注(0)|答案(3)|浏览(50)

重复问题

  • 我搜索了现有的问题

最新版本

  • 我测试了最新版本

总结 💡

在我的应用程序中,我支持浅色和深色主题。
当我使用 window.print() 启动打印时,无论当前显示的主题是浅色还是深色,我都希望使用默认的浅色主题。
我尝试通过使用 useMediaQuery('print') 并将主题设置为浅色来解决这个问题,但它只对 window.print() 有效,对 Ctrl+P 没有效果。
我还尝试了实验性的 CssVariables 颜色模式,如果你能添加指定媒体属性以注入全局样式表的能力,这可能会解决问题。

示例 🌈

  • 无响应*

动机 🔦

在深色主题上打印页面是没有意义的,因为你会用很多墨水来打印。

lxkprmvk

lxkprmvk1#

我还尝试了 beforeprintafterprint 事件,结合了 ReactDOM.flushSync API,但这会产生意外的效果:
Chrome:在打印预览窗口出现并关闭之前,实际页面也会将主题更改为浅色
Safari:打印预览窗口关闭后,主题 Flink
理想情况下,这些 @media print { } 样式应该已经存在于页面上。

up9lanfz

up9lanfz2#

你能在CodeSandbox上分享一个最小复制品吗?

xpszyzbs

xpszyzbs3#

以下是翻译结果:

@siriwatknp 这里是复制的文本:
https://codesandbox.io/s/keen-cache-hwycmz
如果你点击打印按钮,颜色仍然是绿色,但如果你按下“Ctrl + P”,它会变成红色。
为了检查“Ctrl+P”的情况,在这里测试更容易:https://hwycmz.csb.app/

相关问题