我正在使用Windows 7平板电脑上的Silverlight 4浏览器(OOB)应用程序。大多数情况下,该程序处于全屏模式。但是,如果用户旋转平板电脑,应用程序会旋转并保持全屏显示,但会缩放为前一个屏幕方向。将应用程序全屏显示并将其放回全屏后,所有内容都可以正确显示。屏幕旋转时有什么方法可以检测到吗?到目前为止,我已经尝试了应用程序的Resize,LayoutChanged和FullScreenChanged事件,并为主页的SizeChanged事件提供了一个处理程序。当应用程序在全屏模式下旋转时,这些都不会被触发。如何在全屏Silverlight应用程序中检测平板电脑屏幕旋转?
根据约什爱因斯坦的建议,我试着在定时器上轮询应用程序的ActualWidth/Height。它看起来像旋转之后,从Silverlight插件返回的ActualWidth/Height值是预先旋转的值。只有将其全屏显示并全屏显示才会改变插件的分辨率。由于我是OOB,HtmlPage.Eval黑客无法使用。
Silverlight的WP7版本具有OnOrientationChanged事件,该事件似乎在桌面版本中不可用。有人有主意吗?
谢谢,这给了希望的短暂时刻。不幸的是,它看起来像一个屏幕旋转后,Silverlight插件无法正确报告ActialWidth/Height。看到我更新的问题了解更多详情。 – bsruth 2011-05-26 16:47:05
我知道,在我的回答中我注意到,旋转之后,Silverlight插件没有调整大小。 ActualHeight和ActualWidth不会给你正确的值。您需要查看WMI或HTML DOM以获取需要提升浏览器外浏览量或浏览器内应用程序的值。 – Josh 2011-05-27 19:43:49
调整大小似乎很熟悉。我大部分时间都在你关联的帖子上,只是忘了你原来的帖子。对于那个很抱歉。 – bsruth 2011-05-31 20:51:54