用C#/.NET(Windows窗体/.NET框架4.7.2)编写应用程序
当我在我的应用程序中调用一个SaveFileDialog
表单时,它似乎支持系统的设置(当全局禁用暗模式时,一个亮对话框显示,当在系统范围内启用暗模式时,一个暗对话框显示).
在同一应用程序中,无论系统设置如何,OpenFileDialog
和FolderBrowserDialog
总是显示在"灯光模式"中.
有没有办法迫使OpenFileDialog
和FolderBrowserDialog
尊重系统的主题?
EDIT 1:
似乎SaveFileDialog
控件调用系统的本机Save Dialog
,而.NET中的OpenFileDialog
(可能还有FolderBrowserDialog
)控件是本机系统对话框的包装器.在这方面,一个可接受的"解决方案"是从.NET内部调用本机对话框(可能使用Windows API),假设本机对话框默认会遵守系统的黑暗模式设置.
一百零七
关于OpenFileDialog
,在遇到this SO question后,其中一条 comments 表明启用ShowHelp
会导致显示"较旧"的对话框版本,我设法使"现代"对话框显示出来.虽然我自己没有启用ShowHelp
,但我确实启用了ShowReadOnly
.禁用它起到了作用.我不确定这种行为是否记录在案,但肯定不是很明显.在这个问题上,OpenFileDialog
问题现在解决了,FolderBrowserDialog
问题仍然存在.