从 Windows 商店应用程序打开图片

Open images from Windows store application

我创建了一个 windows 商店应用程序,我希望用户从该应用程序打开文档、Excel 文件和图片。我希望文件在其默认应用程序中打开。即 windows 图片查看器中的文字文档和图片。

我使用了以下代码:

FileOpenPicker openPicker = new FileOpenPicker();
openPicker.FileTypeFilter.Add(".Doc");
openPicker.FileTypeFilter.Add(".Docx");
openPicker.FileTypeFilter.Add(".png");
openPicker.FileTypeFilter.Add(".jpg");

StorageFile file = await openPicker.PickSingleFileAsync();

if (file!=null)
{
    await Windows.System.Launcher.LaunchFileAsync(file);
}

当我 运行 浏览到 word 文档时,文件可以用 word 打开,太棒了。

但是如果我浏览到一个图像文件,它什么也做不了。我没有收到任何错误。

知道我需要做什么吗?

谢谢

您可以做的另一件事是在默认程序无法启动时强制应用选择器,如下所示:

if (file != null)
{
    var options = new Windows.System.LauncherOptions();
    options.DisplayApplicationPicker = true;
    bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);                
}

没有错误,只是没有任何反应?真奇怪。

这是我的首选语法,但它基本上是你的:

让我们考虑一下应该发生什么。当你 "launch" 一个 docx 时,你基本上是在要求默认查看器打开该文件,在这种情况下是 Word。使用图像,您要求图像查看器启动。它应该工作吗?是的。

在未安装 Word 时启动 docx 不应导致您所看到的行为。不会。系统会提示您在商店中查找查看器。与图像相同。即使没有查看器,您也应该有所收获。

不是在这里做傻子,但是你重启了吗?听起来确实更像是发生了什么奇怪的事情。您也可以尝试将 "file:///" 附加到 URL 的前面,以便更明确地调用文件查看器。但是,None 应该是必要的。

祝你好运