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

时间:2015-10-23 14:03:50

标签: xaml windows-runtime windows-store-apps winrt-xaml

我创建了一个Windows应用商店,我希望用户从应用中打开Documents,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,很好。

但是如果我浏览图像文件,它就不会做任何事情。我没有收到任何错误。

任何想法我需要做什么?

由于

2 个答案:

答案 0 :(得分:2)

没有错误,简单地说,没有任何反应?这很奇怪。

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

enter image description here

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

在未安装Word时启动docx不应导致您看到的行为。不会。系统会提示您在商店中查找查看器。与图像相同。即使没有观众,你也应该得到一些东西。

这里不是傻瓜,但你重新启动了吗?这听起来更像是发生了奇怪的事情。您也可以尝试将“file:///”附加到URL的前面,以便更明确地调用文件查看器。然而,这些都不是必需的。

祝你好运

答案 1 :(得分:1)

如果无法启动默认程序,则可以强制执行应用程序选择器:

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