Cannot launch default application in a Metro app
好,因此Windows 8附带了一个很酷的PDF和XLS阅读器应用程序,称为Reader。当用户单击应用程序内的"帮助"按钮时,我要显示一个帮助文档。我的应用程序应使用该文档类型的默认查看器启动PDF文档。
但是不会。没有错误,没有异常,设置断点不会显示任何信息。我的代码是:
1 | <Button x:Name="help" Style="{StaticResource HelpAppBarButtonStyle}" Tag="Help" Click="help_Click_1" /> |
和:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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文档位于此根文件夹中。
我不确定为什么它不起作用,但是我相信这可能与我在上面的代码中指向文件的方式有关:
如何使用该文档类型的默认应用程序正确显示Assets文件夹中包含的文档?
我测试了您的代码,在使其正常工作之前,我必须修复两个问题:
更改以上两个选项后,将在默认的PDF查看器中打开文件。但即使在此之前,也出现了一个异常来描述发生了什么问题,尽管由于您的静音try / catch代码,起初我没有注意到它。
如果它仍然不适合您,则可能与您的计算机配置有关。确保正确设置了pdf文件的默认查看器。