0

好的,所以 Windows 8 附带了一个很酷的 PDF 和 XLS 阅读器应用程序,称为 Reader。我有一个帮助文档,当用户单击我的应用程序中的“帮助”按钮时,我想显示该文档。我的应用程序应该使用该文档类型的默认查看器启动 PDF 文档。

但它不会。没有错误,没有异常,设置断点不会显示任何信息。我的代码是:

<Button x:Name="help" Style="{StaticResource HelpAppBarButtonStyle}" Tag="Help" Click="help_Click_1" />

和:

    private async void help_Click_1(object sender, RoutedEventArgs e)
    {

        try
        {
            Windows.Storage.StorageFile file =
                await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"\Assets\User Guide.pdf");
            await Windows.System.Launcher.LaunchFileAsync(file);
        }
        catch (Exception exception)
        {
            Debug.WriteLine(exception.Message);
        }
    }

现在,在解决方案资源管理器中,有常用的文件和文件夹。我在根目录中还有一个 Assets 文件夹,PDF 文档位于该根文件夹中。

我不确定为什么这不起作用,但我相信这可能与我在上述代码中指向文件的方式有关:

await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"\Assets\User Guide.pdf");

如何使用该文档类型的默认应用程序正确显示包含在 Assets 文件夹中的文档?

4

1 回答 1

2

我测试了你的代码,在我让它工作之前我必须解决两个问题:

  1. 确保Build Actionpdf 文件的 设置为Content. None当我将文件包含在项目中时,它被设置为我的情况。
  2. 您需要删除文件路径中的起始反斜杠:Package.Current.InstalledLocation.GetFileAsync(@"Assets\User Guide.pdf").

在我更改了上述两个文件后,在我的默认 PDF 查看器中打开了文件。但即使在此之前,也出现了一个异常,描述出了什么问题,尽管由于您的静默 try/catch 代码,我一开始并没有注意到它。

如果它仍然对您不起作用,则可能与您的机器配置有关。确保 pdf 文件的默认查看器设置正确。

于 2013-01-29T17:59:55.927 回答