Partilhar via


Especificando recursos de imagem da faixa de opções

Como um sistema avançado de apresentação de comandos, a estrutura da Faixa de Opções do Windows foi projetada para dar suporte aos recursos de imagem extensivamente em toda a interface do usuário (interface do usuário) da Faixa de Opções. Todos os recursos de imagem são declarados na marcação da Faixa de Opções ou consultados de um aplicativo host da Faixa de Opções.

Para Windows 8 e posteriores, a estrutura da Faixa de Opções dá suporte aos seguintes formatos gráficos: arquivos BMP (bitmap ARGB) de 32 bits e arquivos PNG (Portable Network Graphics) com transparência.

Para o Windows 7 e anteriores, os recursos de imagem devem estar em conformidade com o formato gráfico BMP padrão usado no Windows.

Observação

Um erro de compilação poderá ocorrer se um formato de imagem sem suporte for fornecido à estrutura.

 

Tamanhos de imagem

Para fornecer maior flexibilidade para layouts de controle da Faixa de Opções ao redimensionar uma janela de aplicativo, a estrutura da Faixa de Opções aceita e renderiza imagens em um dos dois tamanhos: grande ou pequeno.

As imagens a seguir ilustram um aplicativo da Faixa de Opções que dá suporte a vários tamanhos de Faixa de Opções por meio de layouts de controle flexíveis e a substituição de imagens grandes por imagens pequenas, quando disponível.

A captura de tela a seguir mostra a Faixa de Opções com imagens grandes para os controles zoom.

captura de tela mostrando uma faixa de opções que usa imagens grandes para os controles de zoom.

A captura de tela a seguir mostra a mesma Faixa de Opções redimensionada com imagens pequenas para os controles zoom

captura de tela mostrando uma faixa de opções que usa imagens pequenas para os controles de zoom.

A captura de tela a seguir mostra a faixa de opções em estado oculto. A faixa de opções fica oculta quando todos os layouts de controle potenciais foram esgotados e a faixa de opções não pode ser renderizada com um workspace de aplicativo utilizável.

captura de tela mostrando uma faixa de opções recolhida.

Para qualquer imagem, o tamanho exato do pixel depende da resolução de exibição ou dos pontos por polegada (dpi) do monitor que está sendo usado. Com 96 dpi, imagens grandes têm 32 x 32 pixels de tamanho e imagens pequenas têm tamanho de 16 x 16 pixels. Os tamanhos da imagem aumentam de forma linear em relação ao dpi, conforme ilustrado na tabela a seguir.

DPI Imagem pequena Imagem Grande
96 dpi 16 x 16 pixels 32 x 32 pixels
120 dpi 20 x 20 pixels 40 x 40 pixels
144 dpi 24 x 24 pixels 48 x 48 pixels
192 dpi 32 x 32 pixels 64 x 64 pixels

 

A estrutura da Faixa de Opções dimensiona os recursos de imagem conforme necessário. No entanto, como o redimensionamento pode gerar artefatos indesejáveis e degradação de imagem, é altamente recomendável que o aplicativo forneça um pequeno conjunto de recursos de imagem que abrangem várias configurações de dpi comumente usadas. Se uma correspondência exata não for encontrada, a imagem mais próxima será dimensionada para cima ou para baixo.

Para facilitar isso, os recursos de imagem podem ser declarados na marcação da Faixa de Opções usando um conjunto de elementos Image para cada elemento Command . Em tempo de execução, a estrutura seleciona a imagem a ser exibida com base no atributo MinDPI de cada elemento Image .

Importante

Quando uma coleção de recursos de imagem que são projetados para dar suporte a configurações de dpi de tela específicas é fornecida à estrutura da Faixa de Opções por meio de um conjunto de elementos Image , a estrutura usa a Imagem com um valor de atributo MinDPI que corresponde à configuração de dpi de tela atual.

Se nenhum elemento Image for declarado com um valor MinDPI que corresponda à configuração de dpi de tela atual, a estrutura escolherá a Imagem que tem o valor minDPI mais próximo menor do que a configuração de dpi de tela atual e dimensiona o recurso de imagem para cima. Caso contrário, se nenhum elemento Image for declarado com um valor de atributo MinDPI menor que a configuração de dpi de tela atual, a estrutura escolherá o valor minDPI mais próximo maior que a configuração de dpi de tela atual e reduzirá o recurso de imagem.

 

O exemplo a seguir ilustra como declarar um conjunto de imagens para acomodar vários tamanhos de faixa de opções e configurações do sistema.

<Command.LargeImages>
  <Image Source="res/CutLargeImage32.bmp" Id="116" Symbol="ID_CUT_LARGEIMAGE1" MinDPI="96" />
  <Image Source="res/CutLargeImage40.bmp" Id="117" Symbol="ID_CUT_LARGEIMAGE2" MinDPI="120" />
  <Image Source="res/CutLargeImage48.bmp" Id="118" Symbol="ID_CUT_LARGEIMAGE3" MinDPI="144" />
  <Image Source="res/CutLargeImage64.bmp" Id="119" Symbol="ID_CUT_LARGEIMAGE4" MinDPI="192" />
</Command.LargeImages>
<Command.SmallImages>
  <Image Source="res/CutSmallImage16.bmp" Id="122" Symbol="ID_CUT_SMALLIMAGE1" MinDPI="96" />
  <Image Source="res/CutSmallImage20.bmp" Id="123" Symbol="ID_CUT_SMALLIMAGE2" MinDPI="120" />
  <Image Source="res/CutSmallImage24.bmp" Id="124" Symbol="ID_CUT_SMALLIMAGE3" MinDPI="144" />
  <Image Source="res/CutSmallImage32.bmp" Id="125" Symbol="ID_CUT_SMALLIMAGE4" MinDPI="192" />
</Command.SmallImages>
<Command.LargeHighContrastImages>
  <Image Source="res/CutLargeImage32HC.bmp" Id="130" Symbol="ID_CUT_LARGEIMAGE1HC" MinDPI="96" />
  <Image Source="res/CutLargeImage40HC.bmp" Id="131" Symbol="ID_CUT_LARGEIMAGE2HC" MinDPI="120" />
  <Image Source="res/CutLargeImage48HC.bmp" Id="132" Symbol="ID_CUT_LARGEIMAGE3HC" MinDPI="144" />
  <Image Source="res/CutLargeImage64HC.bmp" Id="133" Symbol="ID_CUT_LARGEIMAGE4HC" MinDPI="192" />
</Command.LargeHighContrastImages>
<Command.SmallHighContrastImages>
  <Image Source="res/CutSmallImage16HC.bmp" Id="135" Symbol="ID_CUT_SMALLIMAGE1HC" MinDPI="96" />
  <Image Source="res/CutSmallImage20HC.bmp" Id="136" Symbol="ID_CUT_SMALLIMAGE2HC" MinDPI="120" />
  <Image Source="res/CutSmallImage24HC.bmp" Id="137" Symbol="ID_CUT_SMALLIMAGE3HC" MinDPI="144" />
  <Image Source="res/CutSmallImage32HC.bmp" Id="138" Symbol="ID_CUT_SMALLIMAGE4HC" MinDPI="192" />
</Command.SmallHighContrastImages>

Se as imagens declaradas na marcação forem invalidadas em tempo de execução por qualquer motivo, o aplicativo host será consultado para novas imagens. Quando essas imagens são geradas e carregadas programaticamente, o aplicativo deve tentar retornar imagens dimensionadas de acordo com os tamanhos de ícone do sistema padrão determinados pela métrica do sistema SM_CXICON.

Observação

Imagens grandes têm um tamanho de SM_CXICON por SM_CXICON e imagens pequenas têm um tamanho de SM_CXICON/2 por SM_CXICON/2.

 

Profundidade de cor, transparência e contraste

Espera-se que as imagens regulares estejam em formato de pixel ARGB de 32 bits por pixel (BPP) e dimensionadas para o tamanho padrão do ícone do sistema. Esse formato dá suporte à transparência e à suavização (usando 8 bits por canal).

Aviso

Muitas ferramentas de edição de imagem não preservam o canal alfa de 8 bits de ordem mais alta ao carregar ou salvar 32 imagens BPP.

 

Para que uma imagem seja exibida corretamente no modo de alto contraste, ela deve estar em um formato de pixel palletado de 4 BPP. Quando a imagem é renderizada, a estrutura da Faixa de Opções remapea cores específicas com base no contexto de alto contraste da imagem.

A tabela a seguir lista o comportamento de renderização de cores de alto contraste da estrutura.

Cor do pixel

Valor RGB

Comportamento

Plano de fundo branco

Plano de Fundo Escuro

MAGENTA

800080

Transparente

Transparente

PRETO

000000

COLOR_WINDOWTEXT

BRANCO

BRANCO

FFFFFF

COLOR_WINDOW

PRETO

CINZA ESCURO

808080

COLOR_3DSHADOW

COLOR_3DSHADOW

CINZA

C0C0C0

COLOR_3DFACE

COLOR_3DFACE

CINZA CLARO

DFDFDF

COLOR_3DLIGHT

COLOR_3DLIGHT

AZUL ESCURO

000080

n/d

BRANCO

 

Para obter mais informações sobre os formatos de imagem compatíveis com a estrutura da Faixa de Opções, consulte o seguinte:

Acessibilidade

Contar com recursos de imagem para fornecer informações, transmitir funcionalidades de controle e expor o estado do aplicativo aumenta a necessidade de requisitos de acessibilidade durante o design e o desenvolvimento do aplicativo.

Para suporte básico de alto contraste, a Faixa de Opções permite que um conjunto separado de arquivos de imagem seja exibido quando um tema de alto contraste estiver ativo. Essas imagens podem ser 32 BPP ou 4 BPP, com cores mapeadas para uma paleta especial em que cores escuras e claras são invertidas dependendo das cores de primeiro plano e plano de fundo do tema ativo de alto contraste.

O exemplo a seguir demonstra como os recursos de imagem de alto contraste são declarados na marcação da Faixa de Opções:

<Command Name="cmdNew" Id="0xE100" Symbol="ID_CMD_NEW" LabelTitle="New document" Keytip="N" >
      <Command.TooltipTitle>New (Ctrl+N)</Command.TooltipTitle>
      <Command.TooltipDescription>Create a new document.</Command.TooltipDescription>
      <Command.LargeImages>
        <Image Source="cmdNew-32px.bmp" MinDPI="96" />
        <Image Source="cmdNew-40px.bmp" MinDPI="120" />
        <Image Source="cmdNew-48px.bmp" MinDPI="144" />
        <Image Source="cmdNew-64px.bmp" MinDPI="192" />
      </Command.LargeImages>
      <Command.LargeHighContrastImages>
        <Image Source="cmdNew-32px-HC.bmp" MinDPI="96" />
        <Image Source="cmdNew-40px-HC.bmp" MinDPI="120" />
        <Image Source="cmdNew-48px-HC.bmp" MinDPI="144" />
        <Image Source="cmdNew-64px-HC.bmp" MinDPI="192" />
      </Command.LargeHighContrastImages>
      <Command.SmallImages>
        <Image Source="cmdNew-16px.bmp" MinDPI="96" />
        <Image Source="cmdNew-20px.bmp" MinDPI="120" />
        <Image Source="cmdNew-24px.bmp" MinDPI="144" />
        <Image Source="cmdNew-32px.bmp" MinDPI="192" />
      </Command.SmallImages>
      <Command.SmallHighContrastImages>
        <Image Source="cmdNew-16px-HC.bmp" MinDPI="96" />
        <Image Source="cmdNew-20px-HC.bmp" MinDPI="120" />
        <Image Source="cmdNew-24px-HC.bmp" MinDPI="144" />
        <Image Source="cmdNew-32px-HC.bmp" MinDPI="192" />
      </Command.SmallHighContrastImages>
    </Command>

Command.SmallImages

UI_PKEY_SmallImage

Command.LargeImages

UI_PKEY_LargeImage

Command.SmallHighContrastImages

UI_PKEY_SmallHighContrastImage

Command.LargeHighContrastImages

UI_PKEY_LargeHighContrastImage