Files: filename.qualifier-value.ext
~ multiple qualifiers: filename.qualifier1-value1_qualifier2-value2_....ext
Qualified folders: qualifier-value
~ multiple qualifiers: qualifier1-value1_qualifier2-value2_...
| Qualifier | Usage | Values |
|---|---|---|
| Lang / Language | Specifies a language, region or both. | XX-XX, or XX values in BCP-47 |
| Scale | Qualifies the device scale factor. | Commonly 100 / 125 / 150 / 200 / 400 |
| DeviceFamily | Specifies the device type. | Mobile / Team / Desktop / IoT |
| Contrast | Specifies the contrast theme type. | Standard / High / Black / White |
| HomeRegion | Specifies user's home region. | Any ISO3166-1 alpha2 or numeric code |
| TargetSize | Gives the smallest image larger than need. | Any positive integer. |
| LayoutDir | Specifies a layout direction. | RTL / LTR / TTBRTL / TTBLTR |
| Config | Qualifies for MS_CONFIGURATION_ATTRIBUTE_VALUE. | The value of environment config. |
| DXFL* | Specifies a DirectX feature level. | DX9 / DX10 / DX11 |
* Also used as DXFeatureLevel.
HomeRegion won't accept groupings or unions.TargetSize and Scale cannot be used together.You can qualify a whole folder folder for a specific device type, its files will override the ones outside it on that device:
/ DeviceFamily-Mobile
PageOfEden.xaml
MainPage.xaml
MainPage.xaml
MainPage.xaml.cs
PageOfEden.xaml
PageOfEden.xaml.cs
Files inside the qualifying folder won't need qualifiers.
If you browse your app's Assets folder you will notice that all resources are qualified by their scales (As you are required to put seperate files for each scaling in the package manifest).
SplashScreen.scale-100.png
SplashScreen.scale-125.png
SplashScreen.scale-150.png
SplashScreen.scale-200.png
Let's assume we have an Image element using a square image named Picture.png.
We can use different files for each dimension set for the element.
Picture.TargetSize-16.png
Picture.TargetSize-32.png
Picture.TargetSize-128.png
Now if we set the Height or Width of our Image to 16px, it will use Picture.TargetSize-16.png as a source. Now if we set the dimensions to 20px, there is no image matching the exact dimensions, so it will use Picture.TargetSize-32.png, as it's the nearest image larger than our needs. Dimensions higher than 128 will use Picture.TargetSize-128.png.