0

さて、Windows 8には、Readerと呼ばれるクールなPDFおよびXLSリーダーアプリが付属しています。ユーザーがアプリ内の[ヘルプ]ボタンをクリックしたときに表示したいヘルプドキュメントがあります。私のアプリは、そのドキュメントタイプのデフォルトのビューアであるものを使用して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

コードをテストしましたが、機能させる前に2つの問題を修正する必要がありました。

  1. Build Actionpdfファイルのがに設定されていることを確認してくださいContentNone私の場合、ファイルをプロジェクトに含めたときに設定されました。
  2. ファイルパスの開始バックスラッシュを削除する必要があります:Package.Current.InstalledLocation.GetFileAsync(@"Assets\User Guide.pdf")

上記の両方を変更した後、デフォルトのPDFビューアで開いたファイル。しかし、その前でさえ、あなたのサイレントtry / catchコードのために最初は気づかなかったのに、何がうまくいかなかったかを説明する例外が発生しました。

それでも機能しない場合は、マシンの構成に関連している可能性があります。PDFファイルのデフォルトのビューアが正しく設定されていることを確認してください。

于 2013-01-29T17:59:55.927 に答える