Frage

Ich bin ein Compact Framework-Anwendung für Windows Mobile 6.5 zu schreiben. Die Anwendung wird in der Windows Phone Marktplatz verkauft werden. Um dies zu tun, muss ich die verschiedenen Bildschirmgrößen und Auflösungen unterstützen ... aber wie mache ich das? Gibt es eine bewährte Methode, oder so? Ich benutze hauptsächlich Standard-Kontrollen, sondern ein Hintergrundbild in der Mainform ... mache ich es in jeder Auflösung zu speichern haben und zeigen Sie es dynamisch, je nachdem, welches Gerät meine Anwendung läuft?

Vielen Dank für Ihre Anregungen und Hilfe

Thomas

War es hilfreich?

Lösung

Ich beginne zu sagen dies ein umstrittenes Thema ist.

Meine persönliche Meinung ist, man deutlich unterschiedliche Auflösung identifizieren sollte / Größen Bereiche und bieten eine andere UI-Ebene, die Sie in tauschen können, wenn Sie erkennen ein Resize, die von einem Bereich zum anderen (dynamisch Schalt könnte für Sie nicht einmal sein eine Anforderung geht - in diesem Fall überprüfen Sie nur zur Ladezeit). Dieser Ansatz offensichtlich nicht sinnvoll, wenn die Bereiche Sie identifizieren sind sehr begrenzt und sie ähnlich, wie im gleichen Bereich der App sollte anständig, um die Größe der Lage sein.

Der Versuch, alle möglichen Lösungen mit der gleichen UI-Ebene zu bewältigen könnte wie eine gute Idee klingen, aber es kann ein Rezept für eine Katastrophe sein. Vielleicht haben Sie bekommen es funktioniert, aber Sie werden sehr wahrscheinlich mit einem Knäuel, mit einem Bündel von IF-ELSE und SWITCH Aussagen in Pixelgrößen, Größenänderung Steuerelemente Ende-up und Dinge bewegen.

Wenn man darüber nachdenkt, Google Maps (für ein, aber denken Sie an jedem iPhone app) dient nicht die gleiche Benutzeroberfläche auf mobiles und auf Ihrem Desktop-Browser und so weiter. Wenn das der Unterschied in der Größe wir reden (mobile VS Desktop-ähnliche Auflösungen), dann werden Sie zu rollen verschiedene UI-Schichten haben, wie pro mein Vorschlag oben.

Der heilige Gral ist das so genannte Flüssig-Layout -. WPF dazu helfen kann, aber da Sie auf Compact Framework sind das ist ausgeschlossen

Ich fragte vor kurzem eine sehr ähnliche Frage - Sie einen Blick auf sie haben können hier, wenn Sie unterschiedliche Meinungen lesen Wanna.

Andere Tipps

Dies ist ein toughie. Ich habe mit dem folgenden geringen Aufwand Plan vernünftige Ergebnisse hat. (Dies ist Winform orientiert, btw)

Das größte Problem ist mit Auflösungen, die kleine als erwartet. Deshalb ist ihre Bildschirme so klein wie möglich zu schaffen und besonderes Augenmerk auf Ihren Anker und Docking-Einstellungen bezahlen. Bei der Anzeige von jeder Form, die sie auf Vollbild eingestellt und die Verankerungseigenschaften sollten in einer vernünftigen Art und Weise eine vernünftige Arbeit tun Dinge darstellen kann.

Das beginnt nur dumm aussehen, wenn die Auflösung viel ist größer als erwartet.
Beachten Sie die Bildschirmgröße der aktuellen Plattform über den Screen.PrimaryScreen.Bounds Aufruf finden.

ich eine kleine app vor kurzem gebaut, nur die Dinge zum Ausprobieren. Ich brauchte ein Hintergrundbild angezeigt werden, so dass ich nicht den integrierten Steuerelemente wie Label-verwenden könnte und so weiter, weil sie nicht unterstützen transparenten Hintergrund.

ich am Ende die gesamte Oberfläche in der Paint-Ereignis des Formulars zeichnen, mit GDI +.

Umgang mit unterschiedlichen Bildschirmauflösungen stellte sich heraus, ganz einfach sein: die Schnittstelle für einen regelmäßigen 96dpi Bildschirm prototypisiert wird (die kleinste) dann alle Größen skaliert werden, ein Faktor unter Verwendung von 96 / actual_dpi berechnet. Sie können die aktuelle DPI-Einstellung des Bildschirms mit dem Code abrufen gefunden hier (ein bisschen alt, aber immer noch in Betrieb). Ich habe dann die Anwendung mit allen Auflösungen von den Emulatoren bereitgestellt getestet und keine Probleme.

Caveat. I „verschwendet“ der untere Teil des Bildschirms, so dass nichts Besonderes Adresse quadratische Bildschirme und Landschaft / Porträt Ausrichtungen erforderlich war

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top