mercoledì 24 agosto 2011

Windows Phone 7 Orientamento Primer


a maggior parte delle applicazioni di Windows Phone sono progettati e sviluppati con modalità ritratto in mente.Tuttavia, ci sono momenti in cui ha senso per l'applicazione da utilizzare in modalità orizzontale: ad esempio, la riproduzione di video o immagini di lettura. Inoltre, la maggior parte delle tastiere hardware scivolare lateralmente, il che è utile solo se le applicazioni possono operare in modalità orizzontale. In questo post parleremo di come si può sostenere sia - o entrambe - orientamento verticale e orizzontale all'interno dell'applicazione.
La prima cosa da capire circa l'orientamento è che è fissata ad un livello di pagina. Questo significa che è possibile specificare all'interno di ogni pagina che cosa orientamenti sostiene tramite la proprietà SupportedOrientations. Per esempio, la definizione della pagina di default inizia con un elemento PhoneApplicationPage, in cui è impostato l'attributo SupportedOrientations su Verticale.

<Telefono: PhoneApplicationPage x: Class = "OrientationChangedSample.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns: x = "http://schemas.microsoft.com/winfx / 2006/xaml "xmlns: telefono =" clr-namespace: Microsoft.Phone.Controls; assembly = "FontFamily =" Microsoft.Phone StaticResource PhoneFontFamilyNormal {} "FontSize =" "Primo piano =" {StaticResource PhoneFontSizeNormal StaticResource PhoneForegroundBrush} {} " SupportedOrientations = "Ritratto">

Gli altri valori per la proprietà SupportedOrientations sono Paesaggio e PortraitOrLandscape. Come si potrebbe pensare, specificando Ritratto forze la pagina da visualizzare in Portait a prescindere da come l'utente orienta il dispositivo. Paesaggio forze visualizzazione orizzontale, mentre PortaitOrLandscape permette la pagina per riorientare automaticamente la pagina a seconda di come l'utente posiziona il dispositivo.
Se si utilizza il valore PortaitOrLandscape, probabilmente vuole essere in grado di rilevare quando l'applicazione passa orientamento. Questo viene fatto intercettando l'evento OrientationChanged sulla pagina.
MainPage pubblico () {InitializeComponent (); OrientationChanged + = PageOrientationChanged;} private void PageOrientationChanged (object sender, OrientationChangedEventArgs e) {if ((e.Orientation & PageOrientation.Landscape)> 0) {VisualStateManager.GoToState (this, "Paesaggio" , true);} else {VisualStateManager.GoToState (this, "Ritratto", true);}}
In realtà, l'evento OrientationChanged ottiene generato anche se si specifica Orizzontale come SupportedOrientations.Questo perché in fase di avvio la pagina è inizialmente in verticale, ma viene poi immediatamente riorientato su Orizzontale. In questo caso l'evento OrientationChanged sarà solo sollevato una sola volta.
Il codice precedente dimostra che facciamo un binario "AND" tra l'orientamento della pagina nuova, data dalla proprietà di Orientamento nel eventargs, e il valore di enumerazione PageOrientation.Landscape. Il PageOrientation ha effettivamente i seguenti sette valori discreti (con i loro binari corrispondente e valori interi):
000000Nessuno0
000001Ritratto1
000010Paesaggio2
000101PortraitUp5
001001PortraitDown9
010010LandscapeLeft18
100010LandscapeRight34
Di questi sette valori, un'applicazione Windows Phone sarà sempre solo in uno dei tre orientamenti: PortraitUp (orientamento di default), o LandscapeLeft LandscapeRight. PortraitDown è lì per il completamento, ma non è mai utilizzato all'interno di un'applicazione come sarebbe risultato sul display viene capovolta in alcuni casi. Ritratto e Paesaggio sono là in modo che si può facilmente rilevare che l'orientamento del dispositivo è dentro Nel metodo PageOrientationChanged nel frammento di codice precedente, il binario "AND" tra l'orientamento e il valore di enumerazione PageOrientation.Landscape restituirà un numero positivo per entrambe le LandscapeLeft e LandscapeRight.
Si potrebbe chiedere perché il metodo PageOrientationChanged chiama VisualStateManager.GoToState, dal momento che la pagina verrà automaticamente riorientare quando l'utente cambia l'orientamento (SupportedOrientations assumendo è impostato su PortraitOrLandscape). Mentre la pagina si riorientare e controlli verranno automaticamente ridimensionate in base alle loro allineamento e le proprietà dei margini, in alcuni casi si potrebbe voler modificare il layout di ogni orientamento. Questo è più efficace fatto utilizzando VisualStates (che sono stati trattati nel post precedente).
Expression Blend può aiutare con la creazione di VisualStates per ogni orientamento del dispositivo. Nella finestra dispositivi è possibile specificare cosa si desidera che l'orientamento di progettazione ad apparire in ( Figura 1 ).
Expression Blend Finestra
[Clicca sull'immagine per ingrandirla.]
Una considerazione importante quando si lavora con la finestra del dispositivo in Expression Blend: Non modificare qualsiasi proprietà, mentre nella finestra in modalità stato di registrazione. Questo può causare problemi imprevisti, in particolare lavorando con l'orientamento.
Questa breve panoramica dovrebbe darvi informazioni sufficienti per andare avanti con Windows Phone 7, e, si spera stuzzicare l'appetito di più.


Corso Visual Studio - Corsi Visual Studio
Corso .Net- Corso Dot.Net - Corso Vb.net
Corso C# - Corso PHP - Corso Joomla

Nessun commento:

Posta un commento