Ответ 1
Похоже, Application.Current.RootVisual.RenderSize предоставит вам эту информацию.
Как я могу программно получить разрешение экрана на WP7? Вот куча ссылок, которые выполняют ту же работу, что и на рабочем столе WPF и Silverlight, но ни один из них не находится в SDK телефона.
Любые идеи?
http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/f0639904-a368-44db-9ddd-efcaf8fc736e
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6b6b832f-0dfd-428c-84cd-b1b9e7f236cf
Как получить активные размеры экрана?
http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/f0639904-a368-44db-9ddd-efcaf8fc736e
Похоже, Application.Current.RootVisual.RenderSize предоставит вам эту информацию.
Я использую это:
this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth;
this.ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight;
Много способов скрыть приложение. Если это для XAML, вы можете привязываться к свойствам LayoutRoot.
Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}"
Я не могу понизить/увеличить пока (на самом деле, теперь я могу, и я сделал это), но я хотел бы указать, что ответ "Luke Puplett" в том числе Application.Current.Host.Content является правильным, а не "Andréas Saudemont", который советует RenderSize.
Я буду использовать имена, которые обычно используются в учебниках или примерах приложений из MSDN.
Я говорю, что Host.Current более адекватен, потому что в самом начале приложения, особенно на WP7 (я не знаю, как он находится на "обычном" SL3/SL4 на ПК), то есть, например, в самом первом конструкторе страницы - свойство RenderSize НЕ YET SET правильно, так как "RootVisual" приложения создается и еще не назначается в "App.xaml.cs". По крайней мере, в одной точке RenderSize = Size {0,0}
С другой стороны, если только приложение запускается правильно, Host.Content устанавливается на какой-то телефонный кадр, который правильно отображается на весь экран и поворачивается до фактического положения экрана. Я предполагаю, что с самого начала это начальный экран заставки (пустой или статический из файла JPG)
Если вы хотите получить доступ к размеру экрана из XNA Game, используйте это:
graphics.GraphicsDevice.DisplayMode.Width
и
graphics.GraphicsDevice.DisplayMode.Height
где графика - текущая игра GraphicDeviceManager!
Весь экран:
(App.Current.RootVisual as FrameworkElement).ActualHeight
(App.Current.RootVisual as FrameworkElement).ActualWidth
Текущая страница:
Если вы хотите знать видимый размер (принимая во внимание AppBar/SystemTray), просто попросите его от страницы.