WPF打开文件对话框主题

9

我在我的WPF应用程序中使用Microsoft.Win32.OpenFileDialog来选择文件:

var dlg = new Microsoft.Win32.OpenFileDialog
{
    Title = "Select configuration",
    DefaultExt = ".xml",
    Filter = "XML-file (.xml)|*.xml",
    CheckFileExists = true
};

if (dlg.ShowDialog() == true)
{
//...
}

根据MSDN上的Windows 7截图,对话框应该具有现代风格,但我得到的是旧版的:

enter image description here

this问题中添加清单并不起作用。如何获得类似于MSDN中显示的对话框?

编辑:

首先,我对“本地”解决方案感兴趣,而不是使用第三方组件。


我知道“在我的机器上可以运行”的评论通常没有什么帮助,但是我将您的代码粘贴到我在Windows 7上新创建的项目中。正确的对话框被显示出来了。您的机器设置有什么异常吗? - Cameron Peters
@Cameron Peters,Windows 7 x64。WPF项目针对.Net Framework 3.5。您创建了哪个应用程序(针对.Net 3.5或4.0)? - kyrylomyr
Windows 7 终极版,32 位。.Net Framework 4.0 的 WPF 项目。 - Cameron Peters
3
当我将目标切换到.NET 3.5时,我得到了旧款式对话框。您是否能够将目标设置为4.0,还是必须坚持使用3.5? - Cameron Peters
@Cameron Peters,我可以切换。可能使用.NET 4.0的“OpenFileDialog”执行具有现代对话框的新代码。感谢您的帮助。将此添加到您的答案中,我会标记它。 - kyrylomyr
1个回答

5

如果您将目标切换到.Net 4.0完整版或客户端配置文件,则会获得正确的对话框。

如果您使用Windows 7代码包,则WPF中的一些现代常见对话框仅可用,但当您以.Net 4.0为目标时,新样式的打开对话框是可用的。


这是一种可能的方式,但微软如何在MSDN中使用代码片段获得现代对话框?还是这是假的?顺便说一句,Windows 7 Code Pack的大多数功能都已添加到.NET Framework 4中。 - kyrylomyr
@archer。我现在只是猜测,但你可以尝试为应用程序添加清单文件(manifest)。也许会影响使用哪一组公共对话框...抱歉,在我周末离开之前,我无法在10秒内找到关于这个主题的好链接... - Cameron Peters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接