我正在 Windows 7 平板电脑上开发 Silverlight 4 out of browser (OOB) 应用程序。大多数时候,程序处于全屏模式。但是,如果用户旋转平板电脑,应用程序会旋转并保持全屏状态,但会针对之前的屏幕方向进行缩放。将应用程序退出全屏并将其放回全屏可以正确调整所有内容。有什么方法可以检测到屏幕何时旋转?到目前为止,我已经尝试了应用程序的 Resize、LayoutChanged 和 FullScreenChanged 事件,并为主页的 SizeChanged 事件提供了一个处理程序。当应用程序在全屏模式下旋转时,这些都不会被触发。
根据 Josh Einstein 的建议,我尝试在计时器上轮询应用程序的实际宽度/高度。看起来旋转后,Silverlight 插件返回的 ActualWidth/Height 值是预先旋转的值。只有将其退出全屏并重新全屏才会更改插件的分辨率。HtmlPage.Eval hack 没有工作,因为我是 OOB。
Silverlight的WP7版本有OnOrientationChanged事件,桌面版好像没有。有人有想法么?