【发布时间】:2016-09-12 07:29:18
【问题描述】:
我想使用与当前window 相同的主题来自定义SaveFileDialog。
我正在使用MahApps.Metro 和MaterialDesign,但我没有找到将边框更改为对话框的方法...我不想在其中添加任何东西,我只想自定义按钮'颜色,窗口的颜色等...
有人知道怎么做吗?
【问题讨论】:
标签: c# wpf material-design mahapps.metro savefiledialog
我想使用与当前window 相同的主题来自定义SaveFileDialog。
我正在使用MahApps.Metro 和MaterialDesign,但我没有找到将边框更改为对话框的方法...我不想在其中添加任何东西,我只想自定义按钮'颜色,窗口的颜色等...
有人知道怎么做吗?
【问题讨论】:
标签: c# wpf material-design mahapps.metro savefiledialog
简单的答案是不可能。
OpenFileDialog 和 SaveFileDialog 等对话框使用 .NET 中的本机操作系统对话框。这意味着与 Windows 10 相比,该对话框在 Windows XP 上的外观和行为会有所不同。由于它们不是托管表单,因此您不能强制它们使用您想要的库。
如果您真的想使用 Metro 主题,您可能需要在 WPF 中创建自己的对话框实现。但是,我真的不会走那条路,因为它很容易出错,并且使用操作系统的标准实现是这里的最佳选择。
这里 (Extend OpenFileDialog and SaveFileDialog Using WPF) 提供了有关如何使用 WPF 扩展现有系统对话框的更多信息。您很快就会注意到,挂钩到底层 Win32 API 是一项繁琐的工作,但仍然没有给您太大的灵活性。
【讨论】: