Я начну говорить, что это спорная тема.
Мое личное мнение: вы должны идентифицировать существенно разные диапазоны разрешения / размеров и предоставить другой уровень пользовательского интерфейса, который вы можете поменять при обнаружении изменения размера, переходящего из одного диапазона в другой (динамическое переключение может даже не требоваться для вас - в этом случае вы просто проверяете во время загрузки). Этот подход, очевидно, не имеет смысла, если идентифицируемые вами диапазоны очень ограничены и похожи друг на друга, так как в пределах того же диапазона ваше приложение должно иметь возможность приличного изменения размера.
Попытка решить все возможные разрешения одним и тем же слоем пользовательского интерфейса может показаться отличной идеей, но это может стать причиной катастрофы. Вы можете заставить его работать, но вы, скорее всего, в конечном итоге получите цепочку строк с кучей операторов IF-ELSE и SWITCH, которые смотрят на размеры пикселей, изменяют размеры элементов управления и перемещают объекты.
Если подумать, Google Карты (например, но не для любого приложения для iPhone) не поддерживают один и тот же пользовательский интерфейс на мобильном устройстве, в браузере вашего компьютера и т. Д. Если речь идет о разнице в размерах (разрешения, аналогичные настольной версии для мобильных ПК), то вам придется прокручивать разные слои пользовательского интерфейса в соответствии с моим предложением выше.
Святой Грааль - это так называемая Liquid Layout - WPF может помочь в этом, но, поскольку вы находитесь на компактной платформе, это исключено.
Я недавно задал очень похожий вопрос - вы можете посмотреть на него здесь, если хотите прочесть разные мнения .