我关注了这篇文章,该文章解释了如何使用 .NET 扩展 Windows 的内置文件打开/保存对话框。经过一些小的更改后,一切正常,但对话框的外观与其他对话框略有不同。这并不重要,但我很好奇这背后的原因是什么。
我的对话框(平面按钮):
其他对话框(3D 按钮):
我关注了这篇文章,该文章解释了如何使用 .NET 扩展 Windows 的内置文件打开/保存对话框。经过一些小的更改后,一切正常,但对话框的外观与其他对话框略有不同。这并不重要,但我很好奇这背后的原因是什么。
我的对话框(平面按钮):
其他对话框(3D 按钮):
从那篇文章的评论来看:
SaveFileDialogWithEncoding 示例很棒。但是,外观和感觉是“旧样式”——换句话说,按钮和控件没有新的“XP 外观”(即圆形按钮等)。它可能是 OPENFILENAME 结构中的一个字段中的标志设置,我正在调查。我只是想知道您(或其他任何人)是否对解决该问题有任何见解。
然后是自我回答:
没关系——想通了。在实例化表单对象之前,您需要像这样调用 Application.EnableVisualStyles() :
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.Run(new Form1());
}
LarsTech 的解决方案似乎在大多数情况下都有效,但似乎不适用于 Office 加载项。此处按照此 Microsoft 文章EnableThemingInScope
中的描述实现并将其与以下代码一起使用会有所帮助。
using( new EnableThemingInScope( true ) )
{
if (!GetSaveFileName(ref ofn))
{
int ret=CommDlgExtendedError();
if (ret!=0)
{
throw new ApplicationException("Couldn't show file open dialog - " + ret.ToString());
}
return DialogResult.Cancel;
}
}