如何解决如何在全屏Silverlight应用程序中检测Tablet PC屏幕旋转?
| 我正在Windows 7平板电脑上的Silverlight 4浏览器(OOB)应用程序上工作。大多数时候,程序处于全屏模式。但是,如果用户旋转平板电脑,则应用程序旋转并保持全屏显示,但会针对先前的屏幕方向缩放。将应用程序移出全屏模式,然后重新放回全屏模式,可以正确调整所有内容。有什么方法可以检测屏幕何时旋转?到目前为止,我已经尝试了应用程序的Resize,LayoutChanged和FullScreenChanged事件,并为主页的SizeChanged事件提供了处理程序。当应用程序以全屏模式旋转时,这些都不会触发。 根据Josh Einstein的建议,我尝试在计时器上轮询应用程序的ActualWidth / Height。旋转后看起来像是从Silverlight插件返回的ActualWidth / Height值是预旋转的值。仅将其从全屏中取出并放回全屏中,才会更改插件的分辨率。由于我是OOB,HtmlPage.Eval hack无法正常工作。 Silverlight的WP7版本具有OnOrientationChanged事件,在桌面版本中似乎不可用。有人有想法么?解决方法
很好的问题,但据我所知,这似乎是不可能的。我尝试更改虚拟机中的屏幕分辨率(方向更改实际上只是屏幕分辨率更改,导致宽度大于高度,反之亦然),并且无法触发任何布局事件。
问题似乎是Silverlight插件本身未调整大小。使用提升的浏览器外应用程序,您大概可以将COM interop与WMI结合使用以获取实际的屏幕分辨率,但这有点麻烦。如果它是浏览器中的应用程序,则可以使用HTML DOM。在这两种情况下,您都可能必须轮询当前的屏幕分辨率,而不是通过事件得到通知。
Goodcat先生撰写了一篇有关如何在两种情况下获取此信息的博客文章。
我也将其归档为Silverlight错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。