.net “扩展打开/保存文件”对话框中的视觉样式异常

.net “扩展打开/保存文件”对话框中的视觉样式异常,.net,windows,user-interface,savefiledialog,.net,Windows,User Interface,Savefiledialog,我接着解释了如何使用.NET扩展Windows内置的文件打开/保存对话框。经过一些小的修改后,一切正常,但对话框的外观与其他对话框略有不同。这并不重要,但我很好奇这背后的原因是什么 我的对话框(平面按钮): 其他对话框(3D按钮):来自该文章的评论: SaveFileDialogWithEncoding示例非常棒。然而,外观和感觉是“旧式的”——换句话说,按钮和控件没有新的“XP外观”(即圆形按钮等)。它可能是OPENFILENAME结构中某个字段中的一个标志设置,我正在对此进行研究。我只是想

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

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


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

来自该文章的评论:

SaveFileDialogWithEncoding示例非常棒。然而,外观和感觉是“旧式的”——换句话说,按钮和控件没有新的“XP外观”(即圆形按钮等)。它可能是OPENFILENAME结构中某个字段中的一个标志设置,我正在对此进行研究。我只是想知道你(或其他人)是否对解决这个问题有什么见解

然后自我回答:

算了吧,算了吧。在实例化表单对象之前,需要调用Application.EnableVisualStyles(),如下所示:


根据该条的评论:

SaveFileDialogWithEncoding示例非常棒。然而,外观和感觉是“旧式的”——换句话说,按钮和控件没有新的“XP外观”(即圆形按钮等)。它可能是OPENFILENAME结构中某个字段中的一个标志设置,我正在对此进行研究。我只是想知道你(或其他人)是否对解决这个问题有什么见解

然后自我回答:

算了吧,算了吧。在实例化表单对象之前,需要调用Application.EnableVisualStyles(),如下所示:


LarsTech的解决方案似乎在大多数情况下都有效,但似乎不适用于Office插件。在这里,按照说明实现
启用SingingScope
,并将其与以下代码一起使用会有所帮助

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;
    }
}

LarsTech的解决方案似乎在大多数情况下都有效,但似乎不适用于Office插件。在这里,按照说明实现
启用SingingScope
,并将其与以下代码一起使用会有所帮助

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;
    }
}

哎呀,我忽略了评论。非常感谢你指出这一点!哎呀,我忽略了评论。非常感谢你指出这一点!