Compartilhar via


Exibindo guias contextuais

Em um aplicativo de estrutura da Faixa de Opções do Windows, uma guia contextual é um controle Tab oculto exibido na linha de tabulação quando um objeto no workspace do aplicativo, como uma imagem, é selecionado ou realçado.

Introdução

Ao contrário das guias principais, que contêm vários comandos comuns relevantes, independentemente do contexto do workspace, as guias contextuais normalmente contêm um ou mais Comandos aplicáveis apenas a um objeto selecionado ou realçado.

Quando um objeto é selecionado ou realçado no workspace do aplicativo, o tipo e o contexto do objeto podem exigir comandos diferentes que não fazem sentido organizacional ou funcional em uma guia contextual. Nesses casos, várias guias contextuais, que estão contidas em um Grupo de Guias, podem ser necessárias. Por exemplo, selecionar uma imagem contida em uma célula de tabela pode exigir duas guias contextuais que expõem a funcionalidade de tabela e imagem.

Observação

Além de várias guias contextuais, a estrutura da Faixa de Opções também dá suporte a vários controles do Grupo de Guias em uma faixa de opções.

 

Ao exibir guias contextuais, a estrutura da Faixa de Opções impõe um conjunto básico de comportamentos que incluem:

  • As guias contextuais são posicionadas na ordem em que são declaradas e à direita das guias principais na linha da guia da faixa de opções.
  • Quando a faixa de opções é redimensionada, as guias são dimensionadas e os rótulos de tabulação são truncados conforme o espaço requer. No entanto, as guias contextuais visíveis recebem uma prioridade de exibição mais alta na qual são dimensionadas e truncadas por último.
  • O rótulo de um Grupo de Guias é exibido na barra de título do aplicativo e abrange todas as guias contextuais associadas.
  • Quando vários controles do Grupo de Guias são exibidos ao mesmo tempo, uma das cinco cores exclusivas é atribuída à tela de fundo de cada Grupo de Guias na barra de título do aplicativo. Essa cor também é usada como uma cor de realce para as guias contextuais no Grupo de Guias.
  • A atribuição de cor do Grupo de Guias baseia-se na ordem em que os elementos do Grupo de Guias são declarados na marcação. As cores são definidas pela estrutura e não podem ser especificadas pelo aplicativo.
  • As cores do Grupo de Guias definidas pela estrutura podem ser modificadas indiretamente por meio das chaves de propriedade Propriedades da Estrutura . Para obter mais informações, consulte Personalizando cores da faixa de opções.
  • Quando mais de cinco controles do Grupo de Guias são exibidos a qualquer momento, a estrutura circula as cores associadas.
  • O número máximo de controles Tab em uma faixa de opções é limitado a 100. Isso inclui guias contextuais, visíveis ou não.

A captura de tela a seguir mostra uma guia contextual do Windows 7 Paint.

captura de tela que mostra um controle guia contextual.

Implementando guias contextuais

Esta seção discute os detalhes de implementação das guias contextuais da Faixa de Opções e explica como incorporá-las em um aplicativo da Faixa de Opções.

Marcação

Os exemplos a seguir demonstram a marcação básica de um elemento TabGroup que contém duas guias contextuais.

Esta seção de código mostra as declarações TabGroup e Tab Command.

<!-- Contextual Tabs -->
<Command Name='cmdContextualTab1'
         LabelTitle='Contextual Tab 1'
         Symbol='ID_CONTEXTUALTAB1'/>
<Command Name='cmdContextualTab2'
         LabelTitle='Contextual Tab 2'
         Symbol='ID_CONTEXTUALTAB2'/>
<Command Name='cmdContextualTabGroup'
         LabelTitle='Contextual Tabs'
         Symbol='ID_CONTEXTUALTAB_GROUP'/>

Esta seção de código mostra as declarações de controle necessárias para exibir duas guias contextuais em um TabGroup.

      <Ribbon.ContextualTabs>
        <TabGroup CommandName='cmdContextualTabGroup'>
          <Tab CommandName='cmdContextualTab1'>
            <!--InRibbonGallery Group-->
            <Group CommandName='cmdInRibbonGalleryGroup'
                   SizeDefinition='OneInRibbonGallery'>
              <InRibbonGallery CommandName='cmdTextSizeGallery3'
                               HasLargeItems='true'
                               ItemHeight='32'
                               ItemWidth='32'
                               MaxColumns='3' >
                <InRibbonGallery.MenuLayout>
                  <FlowMenuLayout Columns='3'
                                  Gripper ='Corner'/>
                </InRibbonGallery.MenuLayout>
              </InRibbonGallery>
            </Group>
            <!--Command Galleries Group-->
            <Group CommandName='cmdCommandGalleriesGroup'
                   SizeDefinition='OneInRibbonGallery'>
              <InRibbonGallery CommandName='cmdCommandGallery1'
                               Type='Commands'
                               MaxRows='3'
                               MaxColumns='3'>
                <InRibbonGallery.MenuLayout>
                  <FlowMenuLayout Columns='3'
                                  Gripper ='Corner'/>
                </InRibbonGallery.MenuLayout>
              </InRibbonGallery>
            </Group>
          </Tab>
          <Tab CommandName='cmdContextualTab2'></Tab>
        </TabGroup>
      </Ribbon.ContextualTabs> 

Código

UI_PKEY_ContextAvailable é a chave de propriedade única definida pela estrutura para especificar a visibilidade e o estado das guias contextuais. Quando um objeto é selecionado no workspace do aplicativo, essa propriedade pode ser atribuída a um dos três valores da enumeração UI_CONTEXTAVAILABILITY que definem se existe uma guia contextual e, se existir, se ela for mostrada como a guia ativa.

Um aplicativo solicita uma atualização do Grupo de Guias invalidando e atualizando a propriedade UI_PKEY_ContextAvailable quando o contexto do workspace é alterado.

As seções de código a seguir demonstram como exibir uma guia contextual quando uma imagem é selecionada em um workspace do aplicativo.

// Initialize the image tools contextual tab visibility setting.
UI_CONTEXTAVAILABILITY g_ImageTools = UI_CONTEXTAVAILABILITY_NOTAVAILABLE;

// Called when an image is selected in the application.
void SelectImage()
{
  ...
  g_ImageTools = UI_CONTEXTAVAILABILITY_ACTIVE;

  // Invalidate the UI_PKEY_ContextAvailable property of the image tools  
  // contextual tab Command and trigger the UpdatePropery callback function.
  pUIFramework->InvalidateUICommand(
                  cmdImageTabSet, 
                  UI_INVALIDATIONS_PROPERTY, 
                  UI_PKEY_ContextAvailable);
  ...
}

// Update Tab Group properties.
HRESULT MyTabGroupCommandHandler::UpdateProperty(
                                  UINT nCmdID,
                                  REFPROPERTYKEY key,
                                  const PROPVARIANT* ppropvarCurrentValue,
                                  PROPVARIANT* ppropvarNewValue)
{
  HRESULT hr = E_FAIL;

  if (key == UI_PKEY_ContextAvailable)
  {
    hr = UIInitPropertyFromUInt32(key, g_ImageTools, ppropvarNewValue);
  }
  ...
  return hr;
}

Diretrizes de experiência do usuário da faixa de opções

Processo de design da faixa de opções