Масштабируемость WP7 Silverlight масштабируемости приложения

Я пишу много приложений WP7 прямо сейчас, для которых нужна абсолютная калибровка, в зависимости от дисплея. Что это означает, что размер приложения должен составить 656 (ш) на 480 (в), который идеально подходит для WP7 с обоими shell:SystemTray.IsVisible="True" и shell:ApplicationBar IsVisible="True". От возможного 800 x 480 обе тех используемые панели берут 144, таким образом, я хорош на той передней стороне.

На ПК я использовал бы увеличенную версию той потребности размера, как 720x540.

Однако, если iPhone-> iPad является каким-либо признаком возможных потоков дохода для MSFT (а также Ballmer, реинвестировавшийся в бизнес планшета), я собираюсь сделать предположение, что мы будем видеть, что единица размера планшета выходит достаточно скоро для ОС WP7.

Кроме того, может быть 400x240 разрешение WP7 для выхода.

То, что я хотел бы, - чтобы мои приложения были сразу доступны разного размера устройствам, на основе тех размеров выше (656 (w) 480 (h) или масштабированная версия того) - вместо того, чтобы иметь необходимость просто изменить единственное множество значений, чтобы повторно выпустить приложение.Примечание: Я не использую a или - и я не могу. Каждая вещь в приложении абсолютно расположена, и это нарочно.

Таким образом, вопрос здесь - там некоторое значение, которое я могу считать о размере разрешения экрана устройства, на котором работает мое приложение? Я просмотрел ссылку, но не мог найти ничего как это.

8
задан Todd Main 12 August 2010 в 05:55
поделиться

3 ответа

Вы можете определить доступный размер дисплея с помощью: -

var width = Application.Current.Host.Content.ActualWidth;
var height = Application.Current.Host.Content.ActualHeight;

Они остаются неизменными, несмотря на ориентацию. Использование размеров RootVisual , вероятно, также будет работать, но если по какой-то странной причине RootVisual имеет фиксированный размер, то это не сработает.

Приведенные выше свойства ActualWidth и ActualHeight разработаны специально для информирования приложения о размере окна просмотра, предоставляемого хост-устройством.

7
ответ дан 5 December 2019 в 15:17
поделиться

Насколько я знаю, устройства в стиле планшетов (планшетов) будут работать под управлением полной версии Windows 7 (не Windows Phone 7), но с дополнительным программным уровнем сверху для лучшего / более простого / удобного использования в контексте планшетных ПК.

Устройства WP7 будут выпускаться с экранами HVGA (480x320), и Microsoft прямо заявила, что в будущем не будет других размеров. (Они усвоили урок, пытаясь поддерживать несколько размеров экрана.) Это означает, что вам не нужно беспокоиться о 400x240.

В ответ на ваш актуальный вопрос:
Вы можете получить размер экрана, открыв RenderSize из RootVisual , например:

var size = App.Current.RootVisual.RenderSize;

var msg = string.Format("Height: {0}\r\nWidth: {1}", size.Height, size.Width);

MessageBox.Show(msg, "size", MessageBoxButton.OK);

Если устройство повернуто, оно все равно дает размеры из портретной ориентации.

Обратите внимание. Это основано на моих тестах в эмуляторе и не тестировалось на разных устройствах с экранами разного размера.

3
ответ дан 5 December 2019 в 15:17
поделиться

Это возможно, если использовать холст нужного размера, а затем применить масштабирование, изменив значения ScaleX и ScaleY. Лучший способ сделать это - использовать привязку данных к свойству, которое вычисляется во время выполнения. Но имейте в виду, что вы, вероятно, сохраните правильное соотношение, поэтому масштабируйте X и Y одинаково. Когда значение меньше 1, оно будет уменьшаться, и оно будет увеличиваться, когда значение больше 1. Также имейте в виду, что пиксельный stuf станет более пиксельным.

<Canvas x:Name="canvas" Background="#FFFFFFFF" Width="656" Height="480">
    <Canvas.RenderTransform>
        <ScaleTransform ScaleX="1" ScaleY="1"/>
    </Canvas.RenderTransform>
    <Button Content="OK"/>
</Canvas>
1
ответ дан 5 December 2019 в 15:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: