Windows Phone 7 InputScope ordbog

Et godt trick i Windows Phone 7 er, at du kan vælge et andet tastaturlayout på skærmen afhængigt af dine behov. Den måde, du gør dette på, er ved at specificere en InputScope-værdi for TextBox-kontrollen. Men hvordan ved du, hvilken værdi du skal bruge? Navnene er nyttige, men det er stadig svært at fortælle, hvilken du har brug for. Skal du f.eks. Bruge "cifre" eller "nummer" til et input? Jeg har lige den ting, der skal hjælpe dig. Ved at skrive et program, der viser hver InputScopeNameValue i handling, har vi været i stand til at samle en tabel over, hvordan hvert layout ser ud.

For at gøre dette lavede jeg en enkel applikation. Jeg oprettede en ListBox-kontrol med en dataskabelon, der havde en TextBlock og en TextBox. TextBlock's indhold og TextBox's InputScope-værdi var begge bundet til en variabel. Derefter tæller jeg i skærmens konstruktør navnene i InputScopeNameValue enum og lavede en liste over navnene. Koden til optælling blev leveret af Chris Eargle. Jeg spøgte med ham om, at metoden til at opregne en enum blev udeladt fra den kompakte ramme, og et par minutter senere havde han en vis løsningskode.

Der er flere ting, du skal huske på ved bordet:

  • Layouterne kan altid ændres; layouts, der er de samme i dag, kan være forskellige i morgen, når opdateringer til telefonen ankommer. Sørg for, at du bruger den rigtige til jobbet, selvom de ser udskiftelige.
  • Tabellen viser udseende, men ikke funktionalitet. Det er muligt, at nogle layouts med samme udseende har forskelle i funktionalitet.
  • Nogle layouts ser næsten identiske undtagen for mindre forskelle. For eksempel har et layout en anden "Return" -tast, der gør det klart, at skubbe den "tager en handling" i stedet for at indtaste et nyt linjetegn.

Her er uddraget af XAML, jeg brugte til at få ListBox på skærmen:

Dette er koden i koden bag filen, der skal udfylde ListBox:

 privat tomrum loadInputScopeItems () 

{

var scopeNames = fra vare i typeof (InputScopeNameValue) .GetEnumValues ​​()

ordreby vare

vælg nyt InputScopeItem {InputScopeName = item};

inputScopeItems.ItemsSource = scopeNames;

}

Her er udvidelsesmetoden til Type-klassen, som Chris gav mig for at tillade optælling:

 offentlig statisk IEnumerable GetEnumValues ​​(denne type type) 

{

if (! type.IsEnum)

{

udbytte pause;

}

var felter = type.GetFields (BindingFlags.Public | BindingFlags.Static);
 foreach (FieldInfo-felt i felter) 

{

udbytte afkastfelt. Navn;

}

}

Kørsel af denne applikation i emulatoren lad mig sammensætte dette diagram, der viser, hvordan hver InputScope ser ud på skærmen.

AddressCity, AddressCountryName, AddressCountryShortName, AddressStateOrProvince, Date, DateDayName, DateMonthName, PersonalFullName, PersonalGivenName, PersonalMiddleName, PersonalNamePrefix, PersonalNameSuffix, PersonalSname, Text

Adresse Gade, ValutaAantal, ValutaAndreAndSymbol, DatoDag, DatoMåned, DatoJær, cifre, Nummer, postadresse, postkode, Tid, TidHur, TidMinorSek

AlfanumericFullWidth, AlphanumericHalfWidth, Bopomofo, CurrencyChinese, Standard, EnumString, FileName, FullFilePath, Hanja, Hiragana, KatakanaFullWidth, KatakanaHalfWidth, LogOnName, NumberFullWidth, OneChar, Password, PhraseLgs, Private,

ApplicationEnd, Maps, Search (Bemærk: Dette layout adskiller sig kun fra det forrige layout i præsentationen af ​​knappen "Return" i nederste højre hjørne.)

Chat ( Bemærk: Hovedfunktionen i dette layout er emoticon-knappen i nederste venstre side, der viser et valg af humørikoner.)

EmailNameOrAddress, EmailSmtoAddress, EmailUserName, URL

NameOrPhoneNumber ( Bemærk: Dette layout adskiller sig kun fra det foregående ved udskiftning af ".com" -tasten med en semikolontast.)

TelefonAreaCode, TelefonCountryCode, TelefonLocalNumber, PhoneNumber

Bemærk: Dette indlæg blev først offentliggjort i TechRepublic's Smartphones-blog.

© Copyright 2020 | mobilegn.com