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

时间:2012-07-03 08:35:18

标签: .net windows user-interface savefiledialog

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

我的对话框(平面按钮): My Dialog (flat buttons)

其他对话框(3D按钮):Other dialogs (3D style buttons)

2 个答案:

答案 0 :(得分:3)

从该文章的评论中可以看出:

  

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

然后自我回答:

  

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

[STAThread]
static void Main() 
{
  Application.EnableVisualStyles();
  Application.Run(new Form1());
}

答案 1 :(得分:1)

LarsTech的解决方案似乎适用于大多数情况,但似乎不适用于Office加载项。这里按照in this Microsoft article所述实施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;
    }
}
相关问题