WinRT, senzor de orientare ecran

În ultimii ani, computerele în cursul evoluției sale, a primit noile „simțuri“. Nu, acest lucru nu este intriga unui nou film SF! Multe calculatoare - în special tablete și alte dispozitive mobile - dotate cu echipamente care permite aparatului să determine orientarea în spațiu tridimensional, locația sa de pe suprafața Pământului, intensitatea luminii ambientale, și chiar rândul său, viteza computerului în mâinile utilizatorului.

Toate aceste dispozitive sunt denumite colectiv senzori (senzori). și o interfață de software pentru a lucra cu ei este, în principiu, în numele Windows.Devices.Sensors spațiu. întrucât clase cu care programul determină locația sa geografică, situat în numele spațiu Windows.Devices.Geolocation. echipamente de poziționare este adesea menționată ca informal GPS (cu numele de sistem prin satelit GPS), dar, de asemenea, computerul poate determina de multe ori locația geografică printr-o conexiune de rețea.

Pentru a obține beneficii maxime din acest material, trebuie să luați un computer care execută programele de eșantionare, și mutați-l în spațiu. Dacă mașina dvs. cu Windows 8 de dezvoltare este limitată la un sistem de birou (cum ar fi a mea), să ia un comprimat - de exemplu, Microsoft Surface - și extinde programul acesta de la distanță.

orientare

Cea mai simplă a tuturor claselor de senzori este clasa SimpleOrientationSensor; oferă programul o idee despre orientarea în spațiu tridimensional, dar fără detalii. solicită metoda statică pentru a obține o copie SimpleOrientationSensor:

Această operație se realizează în aplicația doar o singură dată, astfel încât codul poate fi efectuată în definiția câmp pentru a oferi acces la obiectul din clasa.

Dacă GetDefault () returneaza null, calculatorul nu are mijloacele necesare pentru a determina orientarea lor.

Valoarea care descrie orientarea actuală poate fi la un moment dat se obține din obiect SimpleOrientationSensor:

SimpleOrientation enumerare este format din șase valori:

Este din cauza limitărilor acestor informații SimpleOrientationSensor clasă este numit „simplu» (simplu).

De asemenea, programul poate primi o notificare eveniment atunci când o schimbare de orientare. Alocați un handler pentru eveniment OrientationChanged:

Evenimentul se declanșează numai dacă schimbările de orientare, care nu se va întâmpla în cazul în care computerul rămâne relativ staționar. Dacă un program necesită o valoare inițială, apelați metoda după tratare a evenimentului de numire GetCurrentOrientation.

Handler eveniment este executat în propriul său fir, astfel încât să interacționeze cu firul UI trebuie să utilizeze obiect CoreDispatcher:

Argumentul eveniment cu un nume foarte lung conține proprietăți orientarea unui tip enumerat SimpleOrientation și Timestamp proprietate de tip DateTimeOffset. Este rezonabil să ne întrebăm: Nu avem ceva informații despre orientarea dispozitivului? Daca nu ar fi dat numele Windows.Graphics.Display spațiu? Este DisplayProperties clasă și proprietățile sale statice și NativeOrientation CurrentOrientation și OrientationChanged eveniment nu oferă informații cu privire la orientarea? Să ne amintim că aceste două proprietăți statice a reveni valoare DisplayOrientations ENUM: Peisaj, Portret, LandscapeFlipped, PortraitFlipped.

Clasele SimpleOrientationSensor DisplayProperties și cu siguranță legate, dar este important să înțelegem esența acestei legături: clasa SimpleOrientationSensor descrie orientarea calculatorului în spațiul tridimensional. DisplayProperties.CurrentOrientation proprietate descrie modul în care computerul Windows compensează prin schimbarea în mod automat orientarea orientarea ferestrei. Cu alte cuvinte, SimpleOrientationSensor informații raport cu privire la orientarea echipamentului, un DisplayProperties.CurrentOrientation - informații despre orientarea programului, care a avut loc ca răspuns la schimbările în orientarea echipamentului.

OrientationAndOrientation proiect va ajuta să se facă distincția între două tipuri de orientare. fișier XAML definește mai multe elemente TextBlock pentru a afișa etichete și date:

fișier de cod-spatele definește două metode pentru unicul scop - care specifică două elemente TextBlock în a doua coloană a grilei. Aceste două metode sunt numite un designer pentru a stabili valorile inițiale și cele două Stivuitoare eveniment:

Notă: SimpleOrientationSensor exemplu este creat ca un câmp, dar verifică posibil proiectantul la null înainte de a accesa obiect.

Dacă executați acest program de pe tabletă cu orientarea principală peisajului (de exemplu, care se întoarce proprietatea DisplayProperties.NativeOrientation DisplayOrientations.Landscape) și, dacă nu ați făcut nimic pentru a preveni Windows 8 schimbarea orientării (de exemplu, prin plasarea stația de tablete și de andocare - andocare stație), apoi secvențială placa de rotație orientarea în sens orar a celor doi indicatori sunt legate după cum urmează:

Senzor de valori de orientare (SimpleOrientationSensor) și dispozitive (DisplayProperties.CurrentOrientation) de peisaj

articole similare