ライブラリを作成しています。必要なことの 1 つは、携帯電話の画面解像度 (ピクセル単位) (幅 x 高さ) です。
私たちはこの方法をうまく使っていました
Screen.Width = (int) System.Windows.Application.Current.Host.Content.ActualWidth;
Screen.Height = (int) System.Windows.Application.Current.Host.Content.ActualHeight;
ただし、このメソッドがバックグラウンド スレッドによって呼び出されるケースを処理しないため、Dispatcher を使用するように変更しました。
System.Windows.Application.Current.RootVisual.Dispatcher.BeginInvoke(() =>
{
Screen.Width = (int) System.Windows.Application.Current.Host.Content.ActualWidth;
Screen.Height = (int) System.Windows.Application.Current.Host.Content.ActualHeight;
});
ただし、BeginInvoke を使用しただけで、「無効なクロス スレッド アクセス」例外がスローされたようです。
現在レンダリングされている XAML ページへの参照がなくても、これを適切に処理するにはどうすればよいでしょうか?