Domanda

Io la scrittura di un'applicazione Compact Framework per Windows Mobile 6.5. L'applicazione sarà venduto nel WindowsPhone Marketplace. Per farlo, devo sostenere le diverse dimensioni dello schermo e risoluzioni ... ma come faccio a fare questo? C'è una buona pratica o giù di lì? Io uso principalmente i controlli standard, ma un'immagine di sfondo nella Mainform ... devo conservarlo in qualsiasi risoluzione e mostrare in modo dinamico, a seconda di quale dispositivo mie corse app?

Grazie per i vostri suggerimenti e aiuto

Thomas

È stato utile?

Soluzione

Comincerò dicendo che questo è un argomento controverso.

La mia opinione personale è che si dovrebbe identificare risoluzione significativamente differente / formati gamme e fornire uno strato di interfaccia utente diverso è possibile scambiare in cui si verifichi un ridimensionamento che va da un intervallo all'altro (switching dinamico potrebbe anche non essere un requisito per voi - in questo caso basta controllare in fase di carico). Questo approccio, ovviamente, non ha senso se gli intervalli si identifica sono molto limitate e simili tra loro, come all'interno della stessa gamma vostra applicazione dovrebbe essere in grado di ridimensionare decentemente.

cercare di affrontare tutte le risoluzioni possibili con lo stesso livello di interfaccia utente potrebbe suonare come una grande idea, ma può essere una ricetta per il disastro. Si potrebbe farlo funzionare, ma avrete molto probabilmente fine-up con un gomitolo di spago, con un mucchio di dichiarazioni if-else e passare guardando dimensioni dei pixel, il ridimensionamento dei controlli e in movimento le cose intorno.

Se ci pensate, Google Maps (per uno, ma pensare a qualsiasi applicazione per iPhone) non serve la stessa interfaccia utente su mobile e sul vostro browser desktop e così via. Se questa è la differenza di dimensioni di cui stiamo parlando (mobile VS risoluzioni del desktop-like), allora si dovrà rotolare diversi strati di interfaccia utente come per il mio suggerimento sopra.

Il Santo Graal è il cosiddetto layout liquido - WPF potrebbe aiutare su questo, ma visto che sei su compact framework che è escluso

.

Recentemente ho fatto una domanda molto simile - si può avere uno sguardo esso qui se vuoi leggere opinioni diverse .

Altri suggerimenti

Questa è una toughie. Ho avuto risultati ragionevoli con il seguente piano basso sforzo. (Questo è WinForm orientata, btw)

Il problema più grande è con risoluzioni che sono piccolo del previsto. Quindi creare i vostri schermi il più piccolo possibile e prestare particolare attenzione alle impostazioni di ancoraggio e di attracco. Durante la visualizzazione di ogni modulo impostato a schermo intero e le proprietà di ancoraggio dovrebbero fare un lavoro ragionevole di mostrare le cose in un modo sano.

Questa inizia solo a sembrare stupidi se la risoluzione è molto più grande del previsto.
Nota È possibile trovare le dimensioni dello schermo della piattaforma corrente tramite la chiamata Screen.PrimaryScreen.Bounds.

Recentemente ho costruito una piccola applicazione, solo per provare le cose. Avevo bisogno di visualizzare un'immagine di sfondo, così non ho potuto utilizzare i controlli incorporati come etichette e così via, perché non supportano sfondo trasparente.

Ho finito per disegnare l'intera interfaccia nell'evento Paint del form, utilizzando GDI +.

Movimentazione diverse risoluzioni dello schermo si è rivelata abbastanza semplice: l'interfaccia è prototipo per uno schermo 96dpi regolare (il più piccolo), allora tutte le dimensioni sono in scala utilizzando un fattore calcolato come 96 / actual_dpi. È possibile recuperare l'impostazione DPI del documento sullo schermo utilizzando il codice trovato qui (un po 'vecchio ma ancora funzionante). Ho poi provato l'applicazione con tutte le risoluzioni fornite dai emulatori e ho trovato nessun problema.

Caveat:. I "sprecato" nella parte inferiore dello schermo in modo che era necessario niente di speciale per affrontare schermi quadrati e orientamento verticale paesaggio /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top