1

我关注了这篇文章,该文章解释了如何使用 .NET 扩展 Windows 的内置文件打开/保存对话框。经过一些小的更改后,一切正常,但对话框的外观与其他对话框略有不同。这并不重要,但我很好奇这背后的原因是什么。

我的对话框(平面按钮): 我的对话框(平面按钮)

其他对话框(3D 按钮):其他对话框(3D 样式按钮)

4

2 回答 2

3

从那篇文章的评论来看:

SaveFileDialogWithEncoding 示例很棒。但是,外观和感觉是“旧样式”——换句话说,按钮和控件没有新的“XP 外观”(即圆形按钮等)。它可能是 OPENFILENAME 结构中的一个字段中的标志设置,我正在调查。我只是想知道您(或其他任何人)是否对解决该问题有任何见解。

然后是自我回答:

没关系——想通了。在实例化表单对象之前,您需要像这样调用 Application.EnableVisualStyles() :

[STAThread]
static void Main() 
{
  Application.EnableVisualStyles();
  Application.Run(new Form1());
}
于 2012-07-03T12:45:47.593 回答
1

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;
    }
}
于 2012-07-04T07:04:24.753 回答