Personalizar os recursos de idioma, escala, alto contraste e outros qualificadoresTailor your resources for language, scale, high contrast, and other qualifiers

Este tópico descreve o conceito geral dos qualificadores de recurso, como usá-los e a finalidade de cada nome de qualificador.This topic explains the general concept of resource qualifiers, how to use them, and the purpose of each of the qualifier names. Consulte ResourceContext.QualifierValues para obter uma tabela de referência de todos os valores de qualificador possíveis.See ResourceContext.QualifierValues for a reference table of all the possible qualifier values.

Seu app pode carregar ativos e recursos que são personalizados com base em contextos de tempo de execução, como idioma, alto contraste exibir fator de escala e muitos outros.Your app can load assets and resources that are tailored to runtime contexts such as display language, high contrast, display scale factor, and many others. Para isso, nomeie as pastas ou os arquivos dos recursos de modo que correspondam aos nomes e valores de qualificador desses contextos.The way you do this is to name your resources’ folders or files to match the qualifier names and qualifier values that correspond to those contexts. Por exemplo, talvez seja necessário que o app carregue um conjunto diferente de ativos de imagem no modo de alto contraste.For example, you may want your app to load a different set of image assets in high contrast mode.

Para obter mais informações sobre a proposta de valor de localização do aplicativo, consulte Globalização e localização.For more info about the value proposition of localizing your app, see Globalization and localization.

Nome do qualificador, valor do qualificador e qualificadorQualifier name, qualifier value, and qualifier

Um nome de qualificador é uma chave mapeada para um conjunto de valores de qualificador.A qualifier name is a key that maps to a set of qualifier values. Estes são o nome e os valores de qualificador para contraste.Here are the qualifier name and qualifier values for contrast.

ContextoContext Nome de qualificadorQualifier name Valores de qualificadorQualifier values
A configuração de alto contrasteThe high contrast setting contrastecontrast padrão, alto, preto e brancostandard, high, black, white

Você pode combina um nome de qualificador com um valor de qualificador para formar um qualificador.You combine a qualifier name with a qualifier value to form a qualifier. <qualifier name>-<qualifier value> é o formato de um qualificador.<qualifier name>-<qualifier value> is the format of a qualifier. contrast-standard é um exemplo de um qualificador.contrast-standard is an example of a qualifier.

Portanto, para alto contraste, o conjunto de qualificadores é contrast-standard, contrast-high, contrast-black e contrast-white.So, for high contrast, the set of qualifiers is contrast-standard, contrast-high, contrast-black, and contrast-white. Os nomes e os valores de qualificador não diferenciam maiúsculas de minúsculas.Qualifier names and qualifier values are not case sensitive. Por exemplo, contrast-standard e Contrast-Standard são o mesmo qualificador.For example, contrast-standard and Contrast-Standard are the same qualifier.

Usar qualificadores em nomes de pastaUse qualifiers in folder names

Este é um exemplo do uso de qualificadores para nomear pastas que contêm arquivos de ativo.Here is an example of using qualifiers to name folders that contain asset files. Use qualificadores em nomes de pasta, se você tiver vários arquivos de ativo por qualificador.Use qualifiers in folder names if you have several asset files per qualifier. Dessa forma, você definirá o qualificador uma vez no nível da pasta, e o qualificador aplicará isso a tudo que estiver contido na pasta.That way, you set the qualifier once at the folder level, and the qualifier applies to everything inside the folder.

\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>

Se você nomear as pastas como no exemplo acima, o app usará a configuração de alto contraste para carregar arquivos de recurso na pasta nomeada para o qualificador apropriado.If you name your folders as in the example above, then your app uses the high contrast setting to load resource files from the folder named for the appropriate qualifier. Portanto, se a configuração for Preto em Alto Contraste, os arquivos de recurso na pasta \Assets\Images\contrast-black serão carregados.So, if the setting is High Contrast Black, then the resource files in the \Assets\Images\contrast-black folder are loaded. Se a configuração for Nenhum (ou seja, se o computador não estiver no modo de alto contraste), os arquivos de recurso na pasta \Assets\Images\contrast-standard serão carregados.If the setting is None (that is, the computer is not in high contrast mode), then the resource files in the \Assets\Images\contrast-standard folder are loaded.

Usar qualificadores em nomes de arquivoUse qualifiers in file names

Em vez de criar e nomear pastas, você pode usar um qualificador para nomear os próprios arquivos de recurso.Instead of creating and naming folders, you can use a qualifier to name the resource files themselves. Talvez você prefira fazer isso se tiver apenas um arquivo de recurso por qualificador.You might prefer to do this if you only have one resource file per qualifier. Veja este exemplo.Here’s an example.

\Assets\Images\logo.contrast-standard.png
\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.contrast-black.png
\Assets\Images\logo.contrast-white.png

O arquivo cujo nome contém o qualificador mais apropriado para a configuração é o que será carregado.The file whose name contains the qualifier most appropriate for the setting is the one that is loaded. Essa lógica de correspondência funciona da mesma forma para nomes de arquivo e nomes de pasta.This matching logic works the same way for file names as for folder names.

Referência a um recurso de cadeia de caracteres ou imagem pelo nomeReference a string or image resource by name

Consulte Fazer referência a um identificador de recurso de cadeia de caracteres na marcação XAML, Fazer referência a um identificador de recurso de cadeia de caracteres no código e Fazer referência a uma imagem ou outro ativo no código e na marcação XAML.See Refer to a string resource identifier from XAML markup, Refer to a string resource identifier from code, and Reference an image or other asset from XAML markup and code.

Correspondências de qualificador reais e neutrasActual and neutral qualifier matches

Você não precisa fornecer um arquivo de recurso para cada valor de qualificador.You don’t need to provide a resource file for every qualifier value. Por exemplo, se você achar que só precisa de um ativo visual para alto contraste e outro para o contraste padrão, nomeie esses ativos da seguinte forma.For example, if you find that you only need one visual asset for high contrast and one for standard contrast, then you can name those assets like this.

\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.png

O primeiro nome de arquivo contém o qualificador contrast-high.The first file name contains the contrast-high qualifier. Esse qualificador é uma correspondência real para qualquer configuração de alto contraste quando o alto contraste está ativado.That qualifier is an actual match for any high contrast setting when high contrast is on. Em outras palavras, é uma correspondência aproximada e, portanto, preferencial.In other words, it's a close match so it’s preferred. Uma correspondência real só ocorrerá se o qualificador contiver um valor real, como este.An actual match can only occur if the qualifier contains an actual value, as this one does. Neste caso, high é um valor real para contrast.In this case, high is an actual value for contrast.

O arquivo chamado logo.png não contém nenhum qualificador de contraste.The file named logo.png has no contrast qualifier on it at all. A ausência de um qualificador é um valor neutro.The absence of a qualifier is a neutral value. Se nenhuma correspondência preferencial for encontrada, o valor neutro servirá como uma correspondência de fallback.If no preferred match can be found, then the neutral value serves as a fallback match. Neste exemplo, se o alto contraste for desativado, não há nenhuma correspondência real.In this example, if high contrast is off, then there is no actual match. A correspondência neutra é a melhor correspondência que pode ser encontrada e, portanto, o ativo logo.png será carregado.The neutral match is the best match that can be found, and so the asset logo.png is loaded.

Se você alterar o nome do logo.png para logo.contrast-standard.png, o nome do arquivo conterá um valor de qualificador real.If you were to change the name of logo.png to logo.contrast-standard.png, then the file name would contain an actual qualifier value. Com o alto contraste desativado, haverá uma correspondência real com logo.contrast-standard.png, que é o arquivo de ativo a ser carregado.With high contrast off, there would be an actual match with logo.contrast-standard.png, and that’s the asset file that would be loaded. Assim, os mesmos arquivos serão carregados, nas mesmas condições, mas devido às diferentes correspondências.So, the same files would be loaded, under the same conditions, but because of different matches.

Se você só precisar de um conjunto de ativos para alto contraste e outro para contraste padrão, poderá usar nomes de pasta, em vez de nomes de arquivo.If you only need one set of assets for high contrast and one set for standard contrast, then you can use folder names instead of file names. Nesse caso, a omissão do nome da pasta resultará em uma correspondência neutra.In this case, omitting the folder name entirely gives you the neutral match.

\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>

Para obter mais detalhes sobre como funciona a correspondência de qualificador, consulte Sistema de Gerenciamento de Recursos.For more details on how qualifier matching works, see Resource Management System.

Vários qualificadoresMultiple qualifiers

Você pode combinar qualificadores em nomes de pasta e de arquivo.You can combine qualifiers in folder and file names. Por exemplo, convém que o app carregue ativos de imagem quando o modo de alto contraste estiver ativado e o fator de escala de exibição for 400.For example, you may want your app to load image assets when high contrast mode is on and the display scale factor is 400. Uma maneira de fazer isso é por meio de pastas aninhadas.One way to do this is with nested folders.

\Assets\Images\contrast-high\scale-400\<logo.png, and other image files>

Para que logo.png e outros arquivos sejam carregados, as configurações devem corresponder a ambos os qualificadores.For logo.png and the other files to be loaded, the settings must match both qualifiers.

Outra opção é combinar vários qualificadores em um único nome de pasta.Another option is to combine multiple qualifiers in one folder name.

\Assets\Images\contrast-high_scale-400\<logo.png, and other image files>

Em um nome de pasta, combine vários qualificadores separados com um sublinhado.In a folder name, you combine multiple qualifiers separated with an underscore. <qualifier1>[_<qualifier2>...] é o formato.<qualifier1>[_<qualifier2>...] is the format.

Você pode combinar vários qualificadores em um nome de arquivo no mesmo formato.You can combine multiple qualifiers in a file name in the same format.

\Assets\Images\logo.contrast-high_scale-400.png

Dependendo das ferramentas e do fluxo de trabalho usado na criação de ativos ou do que você achar mais fácil de ler e/ou gerenciar, escolha uma única estratégia de nomenclatura para todos os qualificadores ou combine-os para diferentes qualificadores.Depending on the tools and workflow you use for asset-creation, or on what you find easiest to read and/or manage, you can either choose a single naming strategy for all qualifiers, or you can combine them for different qualifiers.

AlternateFormAlternateForm

O qualificador alternateform é usado para oferecer uma forma alternativa de recurso para uma finalidade específica.The alternateform qualifier is used to provide an alternate form of a resource for some special purpose. Isso normalmente é usado apenas por desenvolvedores de apps japoneses para fornecer uma cadeia de caracteres furigana cujo valor msft-phonetic seja reservado (consulte a seção "Suporte a Furigana em cadeias de caracteres japonesas que podem ser classificadas" em Como se preparar para a localização).This is typically used only by Japanese app developers to provide a furigana string for which the value msft-phonetic is reserved (see the section “Support Furigana for Japanese strings that can be sorted” in How to prepare for localization).

O sistema de destino ou o app deve fornecer um valor que servirá de base para a correspondência dos qualificadores alternateform.Either your target system or your app must provide a value against which alternateform qualifiers are matched. Não use o prefixo msft- em seus próprios valores de qualificador alternateform personalizados.Do not use the msft- prefix for your own custom alternateform qualifier values.

ConfiguraçãoConfiguration

Dificilmente você precisará do nome de qualificador configuration.It’s unlikely that you’ll need the configuration qualifier name. Ele pode ser usado para especificar os recursos aplicáveis apenas a um determinado ambiente em tempo de criação, como recursos somente de teste.It can be used to specify resources that are applicable only to a given authoring-time environment, such as test-only resources.

O qualificador configuration é usado para carregar um recurso que melhor corresponda ao valor da variável de ambiente MS_CONFIGURATION_ATTRIBUTE_VALUE.The configuration qualifier is used to load a resource that best matches the value of the MS_CONFIGURATION_ATTRIBUTE_VALUE environment variable. Portanto, você pode definir a variável para o valor de cadeia de caracteres atribuído aos recursos relevantes; por exemplo, designer ou test.So, you can set the variable to the string value that has been assigned to the relevant resources, for example designer, or test.

ContrasteContrast

O qualificador contrast é usado para fornecer os recursos que melhor correspondam às configurações de alto contraste.The contrast qualifier is used to provide resources that best match high contrast settings.

PersonalizadoCustom

O app pode definir um valor para o qualificador custom; em seguida, os recursos que melhor correspondem a esse valor serão carregados.Your app can set a value for the custom qualifier, and then resources are loaded that best match that value. Por exemplo, convém carregar os recursos com base na licença do app.For example, you may want to load resources based on your app’s license. Quando o app for iniciado, ele verificará a respectiva licença e a usará como o valor para o qualificador custom chamando SetGlobalQualifierValue, conforme mostrado no exemplo de código.When your app launches, it checks its license and uses that as the value for the custom qualifier by calling SetGlobalQualifierValue, as shown in the code example.

public void SetLicenseLevel(BrandID brand)
{
    if (brand == BrandID.Premium)
    {
        ResourceContext.SetGlobalQualifierValue("Custom", "Premium", ResourceQualifierPersistence.LocalMachine);
    }
    else if (brand == BrandID.Standard)
    {
        ResourceContext.SetGlobalQualifierValue("Custom", " Standard", ResourceQualifierPersistence.LocalMachine);
    }
    else
    {
        ResourceContext.SetGlobalQualifierValue("Custom", "Trial", ResourceQualifierPersistence.LocalMachine);
    }
}

Nesse cenário, você informará os nomes de recursos que incluem os qualificadores custom-premium, custom-standard e custom-trial.In this scenario, you would then give your resources names that include the qualifiers custom-premium, custom-standard, and custom-trial.

DeviceFamilyDeviceFamily

Dificilmente você precisará do nome de qualificador devicefamily.It’s unlikely that you’ll need the devicefamily qualifier name. Você pode e deve evitar usá-lo sempre que possível, pois existem técnicas que você pode usar no lugar dele que são muito mais convenientes e eficazes.You can and should avoid using it whenever possible because there are techniques that you can use instead that are much more convenient and robust. Essas técnicas são descritas em Detectando a plataforma em que o app está sendo executado e Código adaptável da versão.Those techniques are described in Detecting the platform your app is running on and Version adaptive code.

Mas, como último recurso, é possível usar os qualificadores devicefamily para nomear pastas que armazenarão as exibições XAML (uma exibição XAML é um arquivo XAML que contém controles e layout de interface do usuário).But as a last resort it is possible to use devicefamily qualifiers to name folders that contain your XAML views (a XAML view is a XAML file that contains UI layout and controls).

\devicefamily-desktop\<MainPage.xaml, and other markup files to load when running on a desktop computer>
\devicefamily-mobile\<MainPage.xaml, and other markup files to load when running on a phone>

Outra alternativa é nomear os arquivos.Or you can name files.

\MainPage.devicefamily-desktop.xaml
\MainPage.devicefamily-mobile.xaml

Em ambos os casos, cada cópia de MainPage.[<qualifier>].xaml compartilha um MainPage.xaml.cs comum, que permanece com nome, local e conteúdo inalterados no projeto.In either case each copy of MainPage.[<qualifier>].xaml shares a common MainPage.xaml.cs, which remains unchanged in your project in terms of name, location, and contents.

Você também pode usar um qualificador devicefamily para nomear um arquivo de recursos (.resw) ou uma pasta.You can also use a devicefamily qualifier to name a Resources File (.resw), or folder. Por exemplo, quando o app estiver em execução na família de dispositivos móveis, o elemento de interface do usuário <TextBlock x:Uid="DeviceFriendlyName"/> usará os recursos de texto e de primeiro plano definidos no arquivo Resources.devicefamily-mobile.resw, se ele contiverFor example, when your app is running on the mobile device family, the UI element <TextBlock x:Uid="DeviceFriendlyName"/> will use the text and foreground resources defined in your Resources.devicefamily-mobile.resw file if it contains

<data name="DeviceFriendlyName.Foreground">
    <value>Red</value>
</data>
<data name="DeviceFriendlyName.Text">
    <value>Mobile device</value>
</data>

Para obter mais informações sobre como usar um arquivo de recursos, consulte Localizar as cadeias de caracteres da interface do usuário.For more on using a Resources File, see Localize your UI strings.

DXFeatureLevelDXFeatureLevel

Dificilmente você precisará do nome de qualificador dxfeaturelevel.It’s unlikely that you’ll need the dxfeaturelevel qualifier name. Ele foi projetado para ser usado com ativos de jogo do Direct3D, para fazer com que os recursos de versão anterior sejam carregados para que correspondam a uma configuração de hardware de versão anterior específica do tempo.It was designed to be used with Direct3D game assets, to cause downlevel resources to be loaded to match a particular downlevel hardware configuration of the time. Mas a prevalência dessa configuração de hardware está tão lenta agora que recomendamos que você não use este qualificador.But the prevalence of that hardware configuration is now so low that we recommend you don’t use this qualifier.

HomeRegionHomeRegion

O qualificador homeregion corresponde à configuração do usuário referente ao país ou à região.The homeregion qualifier corresponds to the user’s setting for country or region. Ele representa o local de residência do usuário.It represents the home location of the user. Os valores incluem qualquer marca de região BCP-47 válida.Values include any valid BCP-47 region tag. Ou seja, qualquer código de região de duas letras ISO 3166-1 alpha-2, além do conjunto de códigos geográficos de três dígitos ISO 3166-1 numeric para regiões compostas (consulte composição M49 de códigos de região da Divisão de Estatísticas das Nações Unidas).That is, any ISO 3166-1 alpha-2 two-letter region code, plus the set of ISO 3166-1 numeric three-digit geographic codes for composed regions (see United Nations Statistic Division M49 composition of region codes). Códigos para "Indicadores econômicos selecionados e outros agrupamentos" não são válidos.Codes for "Selected economic and other groupings" are not valid.

IdiomaLanguage

O qualificador language corresponde à configuração de idioma de exibição.A language qualifier corresponds to the display language setting. Os valores incluem qualquer marca de idioma BCP-47 válida.Values include any valid BCP-47 language tag. Para obter uma lista de idiomas, consulte Registro da submarca de idioma IANA.For a list of languages, see the IANA language subtag registry.

Se você deseja que o app ofereça suporte a diferentes idiomas de exibição, e você tiver literais de cadeia de caracteres no código ou na marcação XAML, retire essas cadeias de caracteres do código/marcação e insira-as em um arquivo de recursos (.resw).If you want your app to support different display languages, and you have string literals in your code or in your XAML markup, then move those strings out of the code/markup and into a Resources File (.resw). Em seguida, você poderá fazer uma cópia traduzida desse arquivo de recursos para cada idioma ao qual o aplicativo dê suporte.You can then make a translated copy of that Resources File for each language that your app supports.

Você normalmente usa um qualificador language para nomear as pastas que contêm os arquivos de recursos (.resw).You typically use a language qualifier to name the folders that contain your Resources Files (.resw).

\Strings\language-en\Resources.resw
\Strings\language-ja\Resources.resw

É possível omitir a parte language- de um qualificador language (ou seja, o nome do qualificador).You can omit the language- part of a language qualifier (that is, the qualifier name). Você não pode fazer isso com os outros tipos de qualificadores, e você só pode fazer isso em um nome de pasta.You can’t do this with the other kinds of qualifiers; and you can only do it in a folder name.

\Strings\en\Resources.resw
\Strings\ja\Resources.resw

Em vez de nomear pastas, você poderá usar os qualificadores language para nomear os próprios arquivos de recursos.Instead of naming folders, you can use language qualifiers to name the Resources Files themselves.

\Strings\Resources.language-en.resw
\Strings\Resources.language-ja.resw

Consulte Localizar as cadeias de caracteres de interface do usuário para obter mais informações sobre como tornar o app localizável usando recursos de cadeia de caracteres e como fazer referência a um recurso de cadeia de caracteres no app.See Localize your UI strings for more information on making your app localizable by using string resources, and how to reference a string resource in your app.

LayoutDirectionLayoutDirection

O qualificador layoutdirection corresponde à direção de layout da configuração de idioma de exibição.A layoutdirection qualifier corresponds to the layout direction of the display language setting. Por exemplo, talvez uma imagem precise ser espelhada para um idioma com leitura da direita para a esquerda, como o árabe ou o hebraico.For example, an image may need to be mirrored for a right-to-left language such as Arabic or Hebrew. Os painéis e as imagens de layout da interface do usuário responderão à direção do layout adequadamente se você definir a propriedade FlowDirection (consulte Ajustar layout e fontes e fornecer suporte a RTL).Layout panels and images in your UI will respond to layout direction appropriately if you set their FlowDirection property (see Adjust layout and fonts, and support RTL). No entanto, o qualificador layoutdirection destina-se aos casos em que a simples inversão não é adequada e permite que você responda à direcionalidade da ordem de leitura e do alinhamento de texto de forma mais geral.However, the layoutdirection qualifier is for cases where simple flipping isn't adequate, and it allows you to respond to the directionality of specific reading order and text alignment in more general ways.

EscalaScale

O Windows seleciona automaticamente um fator de escala para cada monitor com base em seu DPI (pontos por polegada) e na distância de exibição do dispositivo.Windows automatically selects a scale factor for each display based on its DPI (dots-per-inch) and the viewing distance of the device. Consulte Pixels efetivos e fator de escala.See Effective pixels and scale factor. Você deve criar suas imagens em vários tamanhos recomendados (pelo menos 100, 200 e 400) para que o Windows possa escolher o tamanho perfeito ou pode usar o tamanho mais próximo e dimensioná-las.You should create your images at several recommended sizes (at least 100, 200, and 400) so that Windows can either choose the perfect size or can use the nearest size and scale it. Para que o Windows possa identificar qual arquivo físico contém o tamanho correto da imagem para o fator de escala de exibição, use um qualificador scale.So that Windows can identify which physical file contains the correct size of image for the display scale factor, you use a scale qualifier. A escala de um recurso corresponde ao valor de DisplayInformation.ResolutionScale ou ao próximo recurso com a maior escala.The scale of a resource matches the value of DisplayInformation.ResolutionScale, or the next-largest-scaled resource.

Aqui está um exemplo de como definir o qualificador no nível da pasta.Here’s an example of setting the qualifier at the folder level.

\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>

Este exemplo o define no nível do arquivo.And this example sets it at the file level.

\Assets\Images\logo.scale-100.png
\Assets\Images\logo.scale-200.png
\Assets\Images\logo.scale-400.png

Para obter informações sobre qualificar um recurso para scale e targetsize, consulte Qualificar um recurso de imagem para tamanho alvo.For info about qualifying a resource for both scale and targetsize, see Qualify an image resource for targetsize.

TargetSizeTargetSize

O qualificador targetsize é usado basicamente para especificar ícones de associação de tipo de arquivo ou ícones de protocolo a serem exibidos no Explorador de Arquivos.The targetsize qualifier is primarily used to specify file type association icons or protocol icons to be shown in File Explorer. O valor do qualificador representa o comprimento do lado de uma imagem quadrada em pixels brutos (físicos).The qualifier value represents the side length of a square image in raw (physical) pixels. O recurso cujo valor coincide com a configuração de exibição no Explorador de Arquivos é carregado ou, na ausência de uma correspondência exata, o recurso com o próximo valor maior é carregado.The resource whose value matches the View setting in File Explorer is loaded; or the resource with the next-largest value in the absence of an exact match.

Você pode definir os ativos que representam os vários tamanhos do valor de qualificador targetsize para o ícone do app (/Assets/Square44x44Logo.png) na guia Ativos Visuais do designer de manifesto do pacote do app.You can define assets that represent several sizes of targetsize qualifier value for the App Icon (/Assets/Square44x44Logo.png) in the Visual Assets tab of the app package manifest designer.

Para obter informações sobre qualificar um recurso para scale e targetsize, consulte Qualificar um recurso de imagem para tamanho alvo.For info about qualifying a resource for both scale and targetsize, see Qualify an image resource for targetsize.

TemaTheme

O qualificador theme é usado para fornecer os recursos que melhor correspondem à configuração de modo de app padrão ou a substituição do app usando Application.RequestedTheme.The theme qualifier is used to provide resources that best match the default app mode setting, or your app’s override using Application.RequestedTheme.

Tema claro do Shell e recursos não-folheadosShell light theme and unplated resources

A atualização do Windows 10 de maio de 2019 introduziu um novo tema "leve" para o Shell do Windows.The Windows 10 May 2019 Update introduced a new "light" theme for the Windows Shell. Como resultado, alguns ativos de aplicativo que foram mostrados anteriormente em um plano de fundo escuro agora serão mostrados em um plano de fundo claro.As a result, some application assets that were previously shown on a dark background will now be shown on a light background. Para aplicativos que forneciam ativos altforms para os comutadores da barra de tarefas e da janela (Alt + Tab, modo de exibição de tarefa etc.), você deve verificar se eles têm um contraste aceitável em um plano de fundo leve.For apps that apps that provided altform-unplated assets for the taskbar and window switchers (Alt+Tab, Task View, etc), you should verify that they have acceptable contrast on a light background.

Fornecendo ativos específicos de tema claroProviding light theme specific assets

Os aplicativos que desejam fornecer um recurso personalizado para o tema de shell Light podem usar um novo qualificador de recurso de formulário alternativo: altform-lightunplated .Apps that want to provide a tailored resource for shell light theme can use a new alternate form resource qualifier: altform-lightunplated. Este qualificador espelha o qualificador altform existente.This qualifier mirrors the existing altform-unplated qualifier.

Considerações de nível inferiorDownlevel considerations

Os aplicativos não devem usar o theme-light qualificador com o altform-unplated qualificador.Apps should not use the theme-light qualifier with the altform-unplated qualifier. Isso causará um comportamento imprevisível no RS5 e em versões anteriores do Windows devido à maneira como os recursos são carregados para a barra de tarefas.This will cause unpredictable behavior on RS5 and earlier versions of Windows due to the way resources are loaded for the Taskbar. Em versões anteriores do Windows, a versão de tema-Light pode ser usada incorretamente.On earlier versions of windows, the theme-light version may be used incorrectly. O altform-lightunplated qualificador evita esse problema.The altform-lightunplated qualifier avoids this issue.

Comportamento de compatibilidadeCompatibility behavior

Para compatibilidade com versões anteriores, o Windows inclui a lógica para detectar ícones monodesvios e verificar se ele contrasta com o plano de fundo pretendido.For backwards compatibility, Windows includes logic to detect a monochromatic icons and check whether it contrasts with the intended background. Se o ícone não atender aos requisitos de contraste, o Windows procurará uma versão em branco do ativo.If the icon fails to meet contrast requirements, Windows will look for a contrast-white version of the asset. Se isso não estiver disponível, o Windows voltará a usar a versão folheada do ativo.If that’s not available, Windows will fall back to using the plated version of the asset.

APIs importantesImportant APIs