Windows 7 タブレット PC で Silverlight 4 out of browser (OOB) アプリケーションに取り組んでいます。ほとんどの場合、プログラムは全画面モードになっています。ただし、ユーザーがタブレットを回転させると、アプリケーションは回転して全画面表示のままになりますが、前の画面の向きに合わせてスケーリングされます。アプリケーションを全画面表示から取り出して全画面表示に戻すと、すべてが正しく再スケーリングされます。画面が回転したことを検出する方法はありますか? これまでのところ、アプリの Resize、LayoutChanged、FullScreenChanged イベントを試し、メイン ページの SizeChanged イベントのハンドラーを用意しました。アプリケーションが全画面表示モードで回転している場合、これらのいずれも発生しません。
Josh Einstein の提案に従って、アプリケーションの ActualWidth/Height をタイマーでポーリングしてみました。回転後、Silverlight プラグインから返される ActualWidth/Height 値は回転前の値のようです。プラグインの解像度を変更するには、全画面表示を解除して全画面表示に戻すだけです。私は OOB であるため、HtmlPage.Eval ハックは機能しませんでした。
Silverlight の WP7 バージョンには OnOrientationChanged イベントがあり、デスクトップ バージョンでは利用できないようです。誰にもアイデアはありますか?