Compartilhar via


ContextMenuService Classe

Definição

Fornece a implementação do sistema para exibir um ContextMenu.

public ref class ContextMenuService abstract sealed
public static class ContextMenuService
type ContextMenuService = class
Public Class ContextMenuService
Herança
ContextMenuService

Exemplos

O exemplo a seguir atribui o mesmo ContextMenu a dois botões e define as HasDropShadowpropriedades , Placement, PlacementRectangle, HorizontalOffsete VerticalOffset para definir o ContextMenu como posições diferentes para cada botão.

<StackPanel>
  <StackPanel.Resources>
    <ContextMenu x:Key="myContextMenu">
      <MenuItem Header="Item"/>
    </ContextMenu>
  </StackPanel.Resources>

  <!--Both buttons use the same ContextMenu but use the
    properties on ContextMenuService to position them
    differently.-->
  <Button ContextMenu="{StaticResource myContextMenu}" 
          ContextMenuService.HasDropShadow="False" 
          ContextMenuService.Placement="Relative"
          ContextMenuService.HorizontalOffset="50"
          ContextMenuService.VerticalOffset="-10">
    button 1
  </Button>

  <Button ContextMenu="{StaticResource myContextMenu}" 
          ContextMenuService.HasDropShadow="True"
          ContextMenuService.Placement="Right"
          ContextMenuService.PlacementRectangle="0,0,30,30">
    button 2
  </Button>
</StackPanel>

O exemplo a seguir mostra como usar o serviço para exibir um ContextMenu em um botão desabilitado. Observe que você define a ShowOnDisabled propriedade no botão que é o pai do menu de contexto.

<Button Height="30" Content="Disabled Button" IsEnabled="False" 
     ContextMenuService.ShowOnDisabled="True">
  <Button.ContextMenu>
    <ContextMenu>
      <MenuItem Header="Item 1"/>
      <MenuItem Header="Item 2"/>
      <MenuItem Header="Item 3"/>
    </ContextMenu>
  </Button.ContextMenu>
</Button>

Comentários

A ContextMenuService classe fornece propriedades anexadas que podem ser usadas para especificar a aparência e a posição de um menu de contexto. Muitas das propriedades na ContextMenuService classe também são definidas pelo ContextMenu. Às vezes, é mais conveniente definir as propriedades usando a ContextMenuService classe do que definindo as propriedades em um ContextMenu. Por exemplo, você pode criar um ContextMenu para ser compartilhado por vários elementos, mas usar a ContextMenuService classe para especificar uma posição diferente do ContextMenu para cada elemento. As propriedades a ContextMenu seguir são definidas pelas classes e ContextMenuService . Se qualquer uma dessas propriedades estiver definida em e ContextMenu no ContextMenuService, o valor da propriedade do ContextMenuService será usado.

Você também pode usar o ContextMenuService para exibir menus em itens desabilitados.

Campos

ContextMenuClosingEvent

Identifica o evento roteado ContextMenuClosing.

ContextMenuOpeningEvent

Identifica o evento ContextMenuOpening anexado.

ContextMenuProperty

Identifica a propriedade ContextMenu anexada.

HasDropShadowProperty

Identifica a propriedade HasDropShadow anexada.

HorizontalOffsetProperty

Identifica a propriedade HorizontalOffset anexada.

IsEnabledProperty

Identifica a propriedade IsEnabled anexada.

PlacementProperty

Identifica a propriedade Placement anexada.

PlacementRectangleProperty

Identifica a propriedade PlacementRectangle anexada.

PlacementTargetProperty

Identifica a propriedade PlacementTarget anexada.

ShowOnDisabledProperty

Identifica a propriedade ShowOnDisabled anexada.

VerticalOffsetProperty

Identifica a propriedade VerticalOffset anexada.

Propriedades Anexadas

ContextMenu

Obtém ou define o conteúdo de um ContextMenu.

HasDropShadow

Obtém ou define um valor que indica se o ContextMenu tem o efeito de sombra habilitado.

HorizontalOffset

Obtém ou define um valor que indica onde na direção x colocar o ContextMenu em relação ao controle pai.

IsEnabled

Obtém ou define um valor que indica se o ContextMenu pode ser mostrado.

Placement

Obtém ou define um valor que especifica o posicionamento do ContextMenu relativo a PlacementTarget ou PlacementRectangle.

PlacementRectangle

Obtém ou define a área em relação à qual o menu de contexto está posicionado ao abrir.

PlacementTarget

Obtém ou define o controle pai do ContextMenu.

ShowOnDisabled

Obtém ou define um valor que indica se o ContextMenu deve ser mostrado quando seu pai está esmaecido.

VerticalOffset

Obtém ou define um valor que indica onde na direção y colocar o ContextMenu em relação ao controle pai.

Métodos

AddContextMenuClosingHandler(DependencyObject, ContextMenuEventHandler)

Adiciona um manipulador ao evento anexado ContextMenuClosing.

AddContextMenuOpeningHandler(DependencyObject, ContextMenuEventHandler)

Adiciona um manipulador ao evento anexado ContextMenuOpening.

GetContextMenu(DependencyObject)

Obtém o valor da propriedade ContextMenu do objeto especificado.

GetHasDropShadow(DependencyObject)

Obtém um valor que indica se o ContextMenu tem uma sombra.

GetHorizontalOffset(DependencyObject)

Obtém o valor da propriedade HorizontalOffset do objeto especificado.

GetIsEnabled(DependencyObject)

Obtém o valor da propriedade IsEnabled do objeto especificado.

GetPlacement(DependencyObject)

Obtém o valor da propriedade Placement do objeto especificado.

GetPlacementRectangle(DependencyObject)

Obtém o valor da propriedade PlacementRectangle do objeto especificado.

GetPlacementTarget(DependencyObject)

Obtém o valor da propriedade PlacementTarget do objeto especificado.

GetShowOnDisabled(DependencyObject)

Obtém o valor da propriedade ShowOnDisabled do objeto especificado.

GetVerticalOffset(DependencyObject)

Obtém o valor da propriedade VerticalOffset do objeto especificado.

RemoveContextMenuClosingHandler(DependencyObject, ContextMenuEventHandler)

Remove um manipulador para o evento anexado ContextMenuClosing.

RemoveContextMenuOpeningHandler(DependencyObject, ContextMenuEventHandler)

Remove um manipulador para o evento anexado ContextMenuOpening.

SetContextMenu(DependencyObject, ContextMenu)

Define o valor da propriedade ContextMenu do objeto especificado.

SetHasDropShadow(DependencyObject, Boolean)

Define um valor que indica se o ContextMenu tem uma sombra.

SetHorizontalOffset(DependencyObject, Double)

Define o valor da propriedade HorizontalOffset do objeto especificado.

SetIsEnabled(DependencyObject, Boolean)

Define o valor da propriedade IsEnabled do objeto especificado.

SetPlacement(DependencyObject, PlacementMode)

Define o valor da propriedade Placement do objeto especificado.

SetPlacementRectangle(DependencyObject, Rect)

Define o valor da propriedade PlacementRectangle do objeto especificado.

SetPlacementTarget(DependencyObject, UIElement)

Define o valor da propriedade PlacementTarget do objeto especificado.

SetShowOnDisabled(DependencyObject, Boolean)

Define o valor da propriedade ShowOnDisabled do objeto especificado.

SetVerticalOffset(DependencyObject, Double)

Define o valor da propriedade VerticalOffset do objeto especificado.

Eventos Anexados

ContextMenuClosing

Ocorre quando o ContextMenu é fechado.

ContextMenuOpening

Ocorre quando o ContextMenu é aberto.

Aplica-se a

Confira também