首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FileSavePicker和不推荐的ApplicationViewState

FileSavePicker和不推荐的ApplicationViewState
EN

Stack Overflow用户
提问于 2014-08-26 22:41:11
回答 1查看 216关注 0票数 2

FileSavePicker的文档中,它声明:

警告,如果您尝试显示文件选择器,而您的应用程序被关闭,文件选择器将不会显示,并将引发异常。您可以避免这一点,确保您的应用程序没有被抢断,或通过打开它之前,您调用文件选择器。

目前,我正在检查应用程序是否被抢断,并且我的应用程序在每种情况下的响应都不同。我的默认行为也没有显示FileSavePicker,所以我不能只是尝试然后回到其他东西上。我也不想强迫应用程序松开。

然而,ApplicationViewState在8.1之后就不再受欢迎了。在该文档和相关搜索中,建议开发人员直接访问窗口大小,以确定正确的行为。但是,如果视图状态不再可用,我如何知道文件选择器是否会抛出异常?这个应用程序的大小被认为是“支离破碎”的?

而且,我使用的是C++,所以与C++兼容的答案将是非常棒的。我也不介意看到C#的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-27 02:42:44

关于FileSavePicker文档,我认为这只是一个疏忽。您引用的文本来自Windows 8版本,在我看来,它似乎没有为Windows8.1进行更新。

如果您查看FileOpenPicker文档,您会发现它已被更新:

Windows 8中的重要文件()--如果您试图在应用程序崩溃时显示文件选择器,将不会显示文件选择器并引发异常。您可以避免这一点,确保您的应用程序没有被抢断,或通过打开它之前,您调用文件选择器。...Note,即Windows8.1并没有定义特定的抓取窗口大小。相反,用户可以将应用程序的大小调整到任意宽度,降到最低。因此,如果您的应用程序只部署在Windows8.1上,您可以忽略函数,并在本主题的示例代码中调用它。

上面的最后一句(粗体)本质上说,如果您在Windows8.1下运行,您可以忽略状态并安全地打开文件对话框。

为了测试上面的内容,我使用VS 2012创建了一个带有文件保存选择器(在C#中)的Windows 8应用程序。我相信C++的结果也会一样,但我不能百分之百肯定。

我应该注意,我的测试应用程序不检查视图状态,总是尝试打开一个文件对话框。

当应用程序在Windows 8下运行时处于崩溃状态,应用程序将导致错误。在Windows8.1下运行时,相同的应用程序(相同的二进制)允许打开文件保存对话框,而不会出现问题。正如前面提到的,在Windows8.1中没有中断状态,所以我测试应用程序的方式是将应用程序打开到最小宽度(320像素)。

概括地说:

  • 如果您的目标是Windows 8.0,则必须确保应用程序在打开文件选择器对话框之前被解压。
  • 如果您的目标是Windows8.1,则不必担心状态,因为文件选择器对话框不再抛出任何异常。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25516313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档