SetSysTrayVisible错误 Windows Phone 8。

3
以下是需要翻译的内容:

如下所述,存在一个随机错误,该错误在设置SystemTray可见性时会提示某些错误。我已在xaml中将SystemTray可见性设置为false。它有时会随机崩溃应用程序,而并非总是如此。抛出的异常是System.ArgumentException值不在预期范围内。

堆栈跟踪如下

Microsoft.Phone.Shell.Interop.NativeSystemTrayMethods.SetSysTrayVisible(IntPtr pSysTray, Boolean fVisible)    
Microsoft.Phone.Shell.Interop.NativeSystemTrayInteropWrapper.SetSystemTrayVisible(Boolean isVisible)
Microsoft.Phone.Controls.PhoneApplicationPage.set_SystemTrayIsVisible(Boolean value)
Microsoft.Phone.Controls.PhoneApplicationPage..ctor()

可能的原因是什么?有没有解决方法?任何线索都会受到赞赏。

检查任何其他页面或创建新页面,以确定问题是否发生。 - asitis
不,这是随机的。请查看此链接:http://social.msdn.microsoft.com/Forums/wpapps/en-US/62ffbd7f-d7fa-4b68-ba65-cd4e851f0b6c/is-this-stack-trace-a-bug-in-wp8-systemtrayisvisibletrue?forum=wpdevelop - Chhaya Sharma
请再次检查。链接不正确。 - Chhaya Sharma
1
当您收到此错误时,页面是否已完全加载?您可以将Visibility移入Page.Loaded事件中,以便仅在页面完全加载时触发它吗? - ChrisK
根据Paul在链接的论坛帖子中的评论:您能分享一下发生这种情况的页面的XAML吗?如果您正在使用PhoneApplicationFrame以外的默认设置,那么可以提供一个可以重现此问题的完整应用程序也会很有用。这是在哪些设备上发生的?您还能说出关于何时/何地发生这种情况的其他信息吗? - Matt Lacey
2个回答

0
确保你已经将所有的 .dll 文件加载到Visual Studio中!同时,请确保你将字符串完整地写在page.xaml.cs文件的顶部。
using Microsoft.Phone.Shell;

我已经完成了这个任务,对我来说运行得非常好!

//Fullscreen mode.
SystemTray.IsVisible = false;

致敬! // Bachir Bouchemla


0

这根本不是解决方案。

我们发现大多数(90%)的WP8.0设备都出现了同样的错误,而WP8.1设备的比例非常小。由于某种原因,其他错误报告没有包含操作系统的版本。

以下是我们从微软高级技术支持中获得的信息。

这是一个已知问题,在WP8.1中已经修复。

我查看了SetSystemTrayVisible bug的堆栈跟踪,并确认在WP8.1中应该已经修复了。

我不确定为什么您会在8.10.14234上看到一些实例,但在那个区域可能存在第二个更罕见的问题。

不幸的是,在WP8.0上,您的代码无法防止这种情况发生。问题发生在根页面初始化时,它正在设置系统托盘的默认状态。在本机互操作中有一个错误的保护检查,因此如果将句柄初始化为错误值,则会引发异常。该保护已在WP8.1中修复。

您应该能够检测到错误...预计会触发Application_UnhandledException处理程序,从中您可以显示消息框。

因此,处理该异常的最佳方式是捕获它(检测)并建议用户升级操作系统到WP8.1。

我不确定这样做是否可行,因为我们无法在我们的设备或模拟器上重现此错误。

希望这可以帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接