Как узнать размер экрана на Windows Phone 7 Series? - PullRequest
18 голосов
/ 08 апреля 2010

Как программно получить разрешение экрана на WP7? Вот несколько ссылок, которые выполняют ту же работу в настольных WPF и Silverlight, но ни одна из них не содержится в Phone 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

Ответы [ 5 ]

66 голосов
/ 08 декабря 2010

Я использую это:

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}"
14 голосов
/ 08 апреля 2010

Похоже, Application.Current.RootVisual.RenderSize предоставит вам эту информацию.

8 голосов
/ 20 апреля 2011

Я пока не могу понизить / повысить голос (на самом деле, теперь я могу и я так и сделал) , но я хотел бы отметить, что ответ "Люка Пуплетта", включая Заявку .Current.Host.Content - правильный, а не «Andréas Saudemont», который рекомендует RenderSize.

Я буду использовать имена, которые обычно используются в руководствах или примерах приложений из MSDN.

Я говорю, что Host.Current более адекватен, потому что при самом запуске приложения, особенно на WP7 (я не знаю, как на «обычном» SL3 / SL4 на ПК) - то есть, например, в конструкторе самой первой страницы - свойство RenderSize НЕ УСТАНАВЛИВАЕТСЯ правильно, так как «RootVisual» приложения создается и еще не назначено в «App.xaml.cs». По крайней мере, в этой единственной точке RenderSize = Size {0,0}

С другой стороны, если правильно запускается только приложение, для Host.Content задается некоторый телефонный кадр, который имеет полноразмерный экран и повернут в фактическое положение экрана. Я предполагаю, что в самом начале это начальный экран-заставка (пустой или статичный из файла JPG)

4 голосов
/ 20 января 2012

Если вы хотите получить доступ к размеру дисплея из XNA Game, используйте это:

graphics.GraphicsDevice.DisplayMode.Width

и

graphics.GraphicsDevice.DisplayMode.Height

где графика - это GraphicDeviceManager текущей игры!

1 голос
/ 10 апреля 2010

Весь экран:

(App.Current.RootVisual as FrameworkElement).ActualHeight
(App.Current.RootVisual as FrameworkElement).ActualWidth

Текущая страница:

Если вы хотите узнать видимый размер (с учетом AppBar / SystemTray), просто спросите об этом со страницы.

...