Разработка форм для работы над различными разрешениями и соотношениями сторон на Windows CE

У меня есть.NET 2,0 приложения, которые работают на Компактной Платформе. Это имеет набор различных форм, которые были все первоначально разработаны для работы определенного устройства с определенным разрешением экрана. Я теперь надеюсь заставлять это приложение работать на некоторых других устройствах, которые имеют совсем другие разрешения экранов (у некоторых есть абсолютно противоположные соотношения сторон, где экран теперь более высок, чем это широко). Мой вопрос состоит в том, как я могу изменить свои формы для взгляда хорошим на этих других экранах?

Это несколько отличается от разработки форм на полной платформе, так как я должен разработать эти формы для приведения в рабочее состояние полного экрана, так как экраны являются настолько маленькими. Я думал о создании отдельных форм для каждого типа экранной ориентации (например, MyForm_Wide.cs, MyForm_Tall.cs, и т.д.). Я хотел бы смочь снова использовать сгенерированный код неразработчика, который содержит большую бизнес-логику, которая связывается со средствами управления UI. Возможно, я мог так или иначе использовать частичные классы, чтобы заставить это произойти (например, MyForm.cs так или иначе компилируется в MyForm_Wide. Designer.cs, и т.д.). Я действительно хотел бы избежать специфически скомпилированных версий для каждой экранной ориентации. Другой подход, о котором я думал, пытается перестроить некоторые средства управления во времени выполнения на основе решительного размера экрана.

Что делает Вас, парни думают?

6
задан Jason 20 January 2010 в 15:44
поделиться

5 ответов

- [1119797-

Я думаю, что я понял, что я хочу сделать. По некоторым причинам даже на моих устройствах высокого разрешения DPI все еще отображается как 96 в соответствии с API WinForms, поэтому автоматическое масштабирование не делает ничего. Вместо этого, если я вручную звоню масштаба на моем контролях, я получаю их, чтобы точно масштабировать, как я хочу. Теперь это не полностью решает мою проблему в сценариях, где я не хочу делать никакого масштабирования, но я хочу реорганизовать свои элементы управления, если экран находится в противоположном соотношении аспекта, чем то, что я изначально разработал. Для этого я думаю, что я собираюсь посмотреть на использование разных панелей макета (например, FlowLayoutPanel и TableLayoutPanel ), чтобы надеяться, что он соответственно организует контроль.

Надеюсь, это поможет любому будущему гугерурю ...

1
ответ дан 17 December 2019 в 07:04
поделиться

Вы, вероятно, должны установить свой свойство основных форм «Автонаведа» на «DPI».

Затем его вопрос использует якоря и стыковки на конкретные элементы управления в формах. Если вы сделаете это таким образом, компактные рамки будут держать вещи, где вы думали, что они будут.

Кроме того, могут изменить свойство «форм-фактора» формы, чтобы увидеть, как ваша форма будет смотреть на мобильные устройства разных размеров и форм.

1
ответ дан 17 December 2019 в 07:04
поделиться

Поскольку дизайнеры C # очень «ориентированы на пиксель», нет простого способа преобразования ваших форм.

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

Конечно, оригинальные дизайнеры C # не будут очень помогать разработать эти гибкие формы, управляемые макетами.

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

1
ответ дан 17 December 2019 в 07:04
поделиться

Мы используем контроль Aware ориентации Clandure Clarius. Это решает проблему не только форм-фактора, но и на устройствах, которые его поддерживают, изменение ориентации (вращение экрана).

Возможно, самый отличительный аспект мобильного развития в отношении традиционного настольного развития является необходимостью поддержки постоянно растущего диапазона факторов форм устройства.

Для разработчиков Expert Mobile нет новостей, которые проектируют мобильные приложения, которые поддерживают несколько факторов форм, резолюции и ориентации на экран, является нетривиальным, трудоемким и сложным усилением. Как правило, в целом очевидно, что встроенные функции стыковки и крепления в .NET Compact Framework V2.0 далеко не достаточны.

Ориентировочное управление позволяет разработать и кодировать один элемент управления или формы с несколькими макетами или скинами, которые автоматически применяются во время выполнения (и время проектирования) в соответствии с доступным форм-фактором, разрешением и ориентацией. Его непогашенные формы Visual Studio и дизайнер пользователя для управления пользователем и поведение адаптивного пользовательского интерфейса пользователя и адаптивное использование нулевого кода Управляют ориентацию Aware Control A MONGIAL-Companion для любого мобильного магазина, ориентируясь на несколько устройств, возвращая производительность, вы должны сосредоточиться на выращивании вашего бизнеса.

1
ответ дан 17 December 2019 в 07:04
поделиться
ListControl lstMyControl;

    switch (SomeVariable)
    {
       case SomeEnum.Value1:
       lstMyControl = new DropDownList();
       break;
       default: //Don't prefix with "case"
       lstMyControl = new RadioButtonList();
       break;
    }

lstMyControl.CssClass = "SomeClass";
-121--3294809-

Если ваша проблема заключается в том, что пики сохраняются в течение более тысячи поколений, то проблема может быть не в операторах кроссовера и мутации. Вы, возможно, не вводите или не сохраняете достаточно вариаций в вашей популяции: я бы изучил пропорции кроссоверов, мутаций и выживших от одного поколения к другому, и, возможно, повысил бы долю мутаций.

-121--4950637-

Свойство 'Auto Size' на этикетках нарушается при переключении между форм-факторами, btw - поэтому я сохраняю значение false.

0
ответ дан 17 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

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