Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet beskriver det allmänna begreppet resurskvalificerare, hur du använder dem och syftet med vart och ett av kvalificerarnamnen. Se ResourceContext.QualifierValues för en referenstabell med alla möjliga kvalificeringsvärden.
Din applikation kan ladda in resurser som är skräddarsydda för körkontexter som visningsspråk, högkontrast, visningsskalningsfaktoroch många andra. Sättet du gör detta på är att namnge dina resursers mappar eller filer så att de matchar de kvalificerande namn och kvalificerarvärden som motsvarar dessa kontexter. Du kanske till exempel vill att din app ska läsa in en annan uppsättning bildresurser i högkontrastläge.
Mer information om värdeförslaget för att lokalisera din app finns i Globalisering och lokalisering.
Kvalifikatornamn, kvalifikatorvärde och kvalifikator
Ett kvalifierarnamn är en nyckel som kopplar till en uppsättning kvalifierarvärden. Här är kvalificerarnamnet och kvalificerarvärdena för att ge kontrast.
| Kontext | Kvalificeringsnamn | Kvalificeringsvärden |
|---|---|---|
| Inställningen för hög kontrast | kontrast | standard, hög, svart, vit |
Man kombinerar ett kvalifikatornamn med ett kvalifikatorvärde för att bilda en kvalifikator.
<qualifier name>-<qualifier value> är formatet för en kvalifikator.
contrast-standard är ett exempel på en kvalificerare.
För hög kontrast är därför mängden kvalificerare contrast-standard, contrast-high, contrast-blackoch contrast-white. Kvalificeringsnamn och kvalificeringsvärden är inte skiftlägeskänsliga. Till exempel är contrast-standard och Contrast-Standard samma kvalificerare.
Använda kvalificerare i mappnamn
Här är ett exempel på hur du använder kvalificerare för att namnge mappar som innehåller tillgångsfiler. Använd kvalificerare i mappnamn om du har flera resursfiler för varje kvalificerare. På så sätt ställer du in kvalificeringen en gång på mappnivå och kvalificeraren gäller för allt i mappen.
\Assets\Images\contrast-standard\<logo.png, and other image files>
\Assets\Images\contrast-high\<logo.png, and other image files>
\Assets\Images\contrast-black\<logo.png, and other image files>
\Assets\Images\contrast-white\<logo.png, and other image files>
Om du namnger dina mappar som i exemplet ovan använder appen inställningen högkontrast för att läsa in resursfiler från mappen med namnet för lämplig kvalificerare. Om inställningen är Högkontrast svart läses resursfilerna i \Assets\Images\contrast-black mappen in. Om inställningen är Ingen (d.v.s. datorn inte är i högkontrastläge) läses resursfilerna i mappen \Assets\Images\contrast-standard in.
Använda kvalificerare i filnamn
I stället för att skapa och namnge mappar kan du använda en kvalificerare för att namnge själva resursfilerna. Du kanske föredrar att göra detta om du bara har en resursfil per kvalificerare. Här är ett exempel.
\Assets\Images\logo.contrast-standard.png
\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.contrast-black.png
\Assets\Images\logo.contrast-white.png
Den fil vars namn innehåller den kvalificerare som passar bäst för inställningen är den som läses in. Den här matchande logiken fungerar på samma sätt för filnamn som för mappnamn.
Referera till en sträng- eller bildresurs efter namn
Mer information om hur du refererar till en sträng- eller bildresurs efter namn finns i följande avsnitt:
- Referera till en strängresursidentifierare från XAML-
- Referera till en strängresursidentifierare från kod
- Referera till en bild eller annan resurs från XAML-markup och kod
Faktiska och neutrala kvalmatchningar
Du behöver inte ange en resursfil för varje kvalificerarvärde. Om du till exempel upptäcker att du bara behöver en visuell tillgång för hög kontrast och en för standardkontrast kan du namnge dessa tillgångar så här.
\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.png
Det första filnamnet innehåller contrast-high-kvalificeraren. Denna kvalificerare är en verklig matchning för alla högkontrastinställningar när hög kontrast är på. Med andra ord är det en nära matchning så det är att föredra. En faktisk match kan bara ske om kvalificeraren innehåller ett verkligt värde, vilket detta gör. I det här fallet är high ett faktiskt-värde för contrast.
Filen med namnet logo.png har ingen kontrastkvalificerare alls. Avsaknaden av en kvalificerare är ett neutralt värde. Om ingen önskad matchning kan hittas fungerar det neutrala värdet som en reservmatchning. Om hög kontrast i det här exemplet avfinns det ingen faktisk matchning. Den neutrala matchningen är den bästa matchningen som kan hittas, så resursen logo.png laddas in.
Om du skulle ändra namnet på logo.png till logo.contrast-standard.pnginnehåller filnamnet ett faktiskt kvalificerarvärde. När hög kontrast är avstängd skulle det finnas en verklig matchning med logo.contrast-standard.png, och det är tillgångsfilen som skulle läsas in. Så samma filer skulle läsas in under samma förhållanden, men till följd av olika matchningar.
Om du bara behöver en uppsättning tillgångar för högkontrast och en uppsättning för standardkontrast kan du använda mappnamn i stället för filnamn. I det här fallet, om du utelämnar mappnamnet helt får du en neutral matchning.
\Assets\Images\contrast-high\<logo.png, and other images to load when high contrast theme is not None>
\Assets\Images\<logo.png, and other images to load when high contrast theme is None>
Mer information om hur matchning av kvalificerare fungerar finns i Hantera resurser med MRT Core.
Flera kvalificerare
Du kan kombinera kvalificerare i mapp- och filnamn. Du kanske till exempel vill att appen ska läsa in bildtillgångar när högkontrastläget är på och och skalningsfaktor för visning är 400. Ett sätt att göra detta är med kapslade mappar.
\Assets\Images\contrast-high\scale-400\<logo.png, and other image files>
För att logo.png och de andra filerna ska läsas in måste inställningarna matcha båda specifikationerna och.
Ett annat alternativ är att kombinera flera kvalificerare i ett mappnamn.
\Assets\Images\contrast-high_scale-400\<logo.png, and other image files>
I ett mappnamn kombinerar du flera kvalificerare avgränsade med ett understreck.
<qualifier1>[_<qualifier2>...] är formatet.
Du kan kombinera flera kvalificerare i ett filnamn i samma format.
\Assets\Images\logo.contrast-high_scale-400.png
Beroende på vilka verktyg och arbetsflöden du använder för att skapa tillgångar, eller vad du tycker är enklast att läsa och/eller hantera, kan du antingen välja en enda namngivningsstrategi för alla kvalificerare eller kombinera dem för olika kvalificerare.
AlternativForm
alternateform-kvalificeraren används för att tillhandahålla en alternativ form av en resurs för något särskilt syfte. Detta används vanligtvis endast av japanska apputvecklare för att tillhandahålla en furigana-sträng, för vilken värdet msft-phonetic är reserverat (se avsnittet "Stöd för furigana för japanska strängar som kan sorteras" i Hur man förbereder för lokalisering).
Antingen måste ditt målsystem eller din app ange ett värde som alternateform-kvalificerare matchas mot. Använd inte msft--prefixet för dina egna anpassade alternateform kvalificerarvärden.
Konfiguration
Det är osannolikt att du behöver configuration kvalnamnet. Den kan användas för att ange resurser som endast gäller för en viss redigeringstidsmiljö, till exempel resurser med endast test.
configuration-kvalificeraren används för att läsa in en resurs som bäst matchar värdet för MS_CONFIGURATION_ATTRIBUTE_VALUE miljövariabeln. Du kan därför ange variabeln till det strängvärde som har tilldelats till relevanta resurser, till exempel designer, eller test.
Kontrast
Kvalificeraren contrast används för att tillhandahålla resurser som bäst matchar högkontrast-inställningar.
DXFeatureLevel
Det är osannolikt att du behöver dxfeaturelevel kvalnamnet. Den har utformats för att användas med Direct3D-speltillgångar för att göra det möjligt för resurser på lägre nivå att läsas in för att matcha en viss maskinvarukonfiguration på lägre nivå för den tiden. Men förekomsten av den maskinvarukonfigurationen är nu så låg att vi rekommenderar att du inte använder den här kvalificeraren.
Hemregion
Kvalificeraren homeregion motsvarar användarens inställning för land eller region. Den representerar användarens hemplats. Värdena omfattar alla giltiga BCP-47-regionstaggar. Det vill: alla ISO 3166-1 alfa-2 tvåbokstavs regionkod plus uppsättningen med ISO 3166-1 numeriska tresiffriga geografiska koder för sammansatta regioner (se FN:s statistikdivision M49 sammansättning av regionkoder). Koder för "Valda ekonomiska och andra grupper" är inte giltiga.
Språk
En language-kvalificerare motsvarar inställningen för visningsspråk. Värdena omfattar alla giltiga BCP-47-språktagg. En lista över språk finns i IANA-språkundertagarregistret.
Om du vill att appen ska ha stöd för olika visningsspråk och du har strängliteraler i koden eller I XAML-markering, flyttar du sedan dessa strängar från koden/markeringen och till en resursfil (.resw). Du kan sedan göra en översatt kopia av resursfilen för varje språk som appen stöder.
Du använder vanligtvis en language kvalificerare för att namnge mapparna som innehåller dina resursfiler (.resw).
\Strings\language-en\Resources.resw
\Strings\language-ja\Resources.resw
Du kan utelämna language- delen av en language kvalificering (det vill säga, kvalificeringsnamnet). Du kan inte göra detta med andra typer av kvalificerare; och du kan bara göra det i ett mappnamn.
\Strings\en\Resources.resw
\Strings\ja\Resources.resw
I stället för att namnge mappar kan du använda language kvalificerare för att namnge själva resursfilerna.
\Strings\Resources.language-en.resw
\Strings\Resources.language-ja.resw
Mer information om hur du gör appen lokaliserad med hjälp av strängresurser finns i Lokalisera användargränssnittssträngar och hur du refererar till en strängresurs i din app.
Layoutriktning
En layoutdirection-kvalificerare motsvarar layoutriktningen för visningsspråkinställningen. En bild kan till exempel behöva speglas för ett språk från höger till vänster, till exempel arabiska eller hebreiska. Layoutpaneler och bilder i användargränssnittet svarar på layoutriktningen på rätt sätt om du ställer in egenskapen FlowDirection (se Justera layout och teckensnitt och stöd för RTL-). Men kvalificeraren layoutdirection är för fall där enkel flippning inte är tillräcklig, och det gör att du kan svara på riktningarna för särskild läsordning och textjustering på mer generella sätt.
Skala
Windows väljer automatiskt en skalningsfaktor för varje visning baserat på dess DPI (punkter per tum) och enhetens visningsavstånd. Se Effektiva pixlar och skalningsfaktor. Du bör skapa dina bilder i flera rekommenderade storlekar (minst 100, 200 och 400) så att Windows antingen kan välja den perfekta storleken eller använda närmaste storlek och skala den. Så att Windows kan identifiera vilken fysisk fil som innehåller rätt storlek på bilden för visningsskalningsfaktorn använder du en scale kvalificerare. Resursskalan matchar värdet för DisplayInformation.ResolutionScale, eller den näst största skalbara resursen.
Här är ett exempel på hur du ställer in kvalificeringen på mappnivå.
\Assets\Images\scale-100\<logo.png, and other image files>
\Assets\Images\scale-200\<logo.png, and other image files>
\Assets\Images\scale-400\<logo.png, and other image files>
Och det här exemplet anger det på filnivå.
\Assets\Images\logo.scale-100.png
\Assets\Images\logo.scale-200.png
\Assets\Images\logo.scale-400.png
Information om hur du kvalificerar en resurs för både scale och targetsizefinns i Kvalificera en bildresurs för målstorlek.
Målstorlek
targetsize-kvalificeraren används främst för att ange -filtypsassocieringsikoner eller -protokollikoner som ska visas i Utforskaren. Kvalificerarvärdet representerar sidolängden för en kvadratbild i råa (fysiska) bildpunkter. Resursen vars värde matchar inställningen Visa i Utforskaren läses in. eller resursen med det näst största värdet i avsaknad av en exakt matchning.
Du kan definiera tillgångar som representerar flera storlekar av targetsize kvalificerarvärde för appikonen (/Assets/Square44x44Logo.png) på fliken Visuella tillgångar i apppaketmanifestdesignern.
Information om hur du kvalificerar en resurs för både scale och targetsizefinns i Kvalificera en bildresurs för målstorlek.
Tema
Kvalificeraren theme används för att tillhandahålla resurser som bäst matchar standardinställningen för appens läge eller om din app åsidosätter denna inställning med Application.RequestedTheme.
Gränssnittsljustema och opläterade resurser
Windows 10 maj 2019-uppdateringen introducerade ett nytt "ljust" tema för Windows Shell. Det innebär att vissa programtillgångar som tidigare visades i en mörk bakgrund nu visas i en ljus bakgrund. För appar som tillhandahåller altform-unplated-tillgångar för aktivitetsfältet och fönsterväxlarna (Alt+Tab, Aktivitetsvy, osv.) bör du kontrollera att de har acceptabel kontrast mot en ljus bakgrund.
Att tillhandahålla resurser specifikt för ljust tema
Appar som vill tillhandahålla en skräddarsydd resurs för gränssnittsljustema kan använda en ny resurskvalificerare för alternativ form: altform-lightunplated. Den här kvalificeraren speglar den befintliga altform-unplated-kvalificeraren.
Överväganden på nedre nivå
Appar bör inte använda theme-light-kvalificeraren med altform-unplated-kvalificeraren. Detta orsakar oförutsägbart beteende på RS5 och tidigare versioner av Windows på grund av hur resurser läses in för aktivitetsfältet. I tidigare versioner av windows kan temaljusversionen användas felaktigt.
altform-lightunplated-kvalificeraren undviker det här problemet.
Kompatibilitetsbeteende
För bakåtkompatibilitet innehåller Windows logik för att identifiera en monokromatisk ikoner och kontrollera om den står i kontrast till den avsedda bakgrunden. Om ikonen inte uppfyller kontrastkraven letar Windows efter en kontrastvit version av tillgången. Om det inte är tillgängligt återgår Windows till att använda den pläterade versionen av tillgången.
Viktiga API:er
Relaterade ämnen
Windows developer