Вопрос

Как программно получить разрешение экрана на 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

Это было полезно?

Решение

Похоже, что 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}"

Я пока не могу проголосовать против/поддержать(собственно, теперь я могу и я это сделал), но я хотел бы отметить, что ответ «Люка Пуплетта», включая Application.Current.Host.Content, является правильным, а не ответ «Андреаса Содемонта», который советует RenderSize.

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

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

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

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

graphics.GraphicsDevice.DisplayMode.Width

и

graphics.GraphicsDevice.DisplayMode.Height

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

Весь экран:

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top