使用 MahApp.Metro 主题自定义 SaveFileDialog

Posted

技术标签:

【中文标题】使用 MahApp.Metro 主题自定义 SaveFileDialog【英文标题】:Use MahApp.Metro theme to custom SaveFileDialog 【发布时间】:2016-09-12 07:29:18 【问题描述】:

我想使用与当前window 相同的主题来自定义SaveFileDialog

我正在使用MahApps.MetroMaterialDesign,但我没有找到将边框更改为对话框的方法...我不想在其中添加任何东西,我只想自定义按钮'颜色,窗口的颜色等...

有人知道怎么做吗?

【问题讨论】:

【参考方案1】:

简单的答案是不可能。

OpenFileDialogSaveFileDialog 等对话框使用 .NET 中的本机操作系统对话框。这意味着与 Windows 10 相比,该对话框在 Windows XP 上的外观和行为会有所不同。由于它们不是托管表单,因此您不能强制它们使用您想要的库。

如果您真的想使用 Metro 主题,您可能需要在 WPF 中创建自己的对话框实现。但是,我真的不会走那条路,因为它很容易出错,并且使用操作系统的标准实现是这里的最佳选择。

这里 (Extend OpenFileDialog and SaveFileDialog Using WPF) 提供了有关如何使用 WPF 扩展现有系统对话框的更多信息。您很快就会注意到,挂钩到底层 Win32 API 是一项繁琐的工作,但仍然没有给您太大的灵活性。

【讨论】:

我读了这篇文章,但我希望有办法避免创建它...我不知道我现在是否会尝试自定义它...但是感谢答案:) 没问题。如果您决定尝试自定义它,祝您好运。这很有趣,但真的很有挑战性! :)

以上是关于使用 MahApp.Metro 主题自定义 SaveFileDialog的主要内容,如果未能解决你的问题,请参考以下文章

Vue的elementUI实现自定义主题

如何使用自定义主题更改默认文本颜色?

使用自定义帖子名称自动创建一个链接,该链接返回到自定义帖子存档页面(包括主题 slug)

博客入门--自定义博客主题

百度echarts自定义主题使用

vue中使用Element主题自定义肤色