Compartir vía


ContextMenuService Clase

Definición

Proporciona la implementación del sistema para mostrar ContextMenu.

public ref class ContextMenuService abstract sealed
public static class ContextMenuService
type ContextMenuService = class
Public Class ContextMenuService
Herencia
ContextMenuService

Ejemplos

En el ejemplo siguiente se asignan los mismos ContextMenu a dos botones y se establecen las HasDropShadowpropiedades , Placement, PlacementRectangle, HorizontalOffsety VerticalOffset para establecer en ContextMenu diferentes posiciones para cada botón.

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

En el ejemplo siguiente se muestra cómo usar el servicio para mostrar un ContextMenu en un botón deshabilitado. Observe que establece la ShowOnDisabled propiedad en el botón que es el elemento primario del menú contextual.

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

Comentarios

La ContextMenuService clase proporciona propiedades adjuntas que se pueden usar para especificar la apariencia y la posición de un menú contextual. Muchas de las propiedades de la ContextMenuService clase también se definen mediante ContextMenu. A veces es más conveniente establecer las propiedades mediante la ContextMenuService clase que estableciendo las propiedades en .ContextMenu Por ejemplo, puede crear un ContextMenu objeto para que lo compartan varios elementos, pero use la ContextMenuService clase para especificar una posición diferente de para ContextMenu cada elemento. Las siguientes propiedades se definen mediante las ContextMenu clases y ContextMenuService . Si cualquiera de estas propiedades se establece en ContextMenu y en ContextMenuService, se utiliza el valor de propiedad de .ContextMenuService

También puede usar para ContextMenuService mostrar menús en elementos deshabilitados.

Campos

ContextMenuClosingEvent

Identifica el evento enrutado ContextMenuClosing.

ContextMenuOpeningEvent

Identifica el evento adjunto ContextMenuOpening.

ContextMenuProperty

Identifica la propiedad adjunta ContextMenu.

HasDropShadowProperty

Identifica la propiedad adjunta HasDropShadow.

HorizontalOffsetProperty

Identifica la propiedad adjunta HorizontalOffset.

IsEnabledProperty

Identifica la propiedad adjunta IsEnabled.

PlacementProperty

Identifica la propiedad adjunta Placement.

PlacementRectangleProperty

Identifica la propiedad adjunta PlacementRectangle.

PlacementTargetProperty

Identifica la propiedad adjunta PlacementTarget.

ShowOnDisabledProperty

Identifica la propiedad adjunta ShowOnDisabled.

VerticalOffsetProperty

Identifica la propiedad adjunta VerticalOffset.

Propiedades adjuntas

ContextMenu

Obtiene o establece el contenido de ContextMenu.

HasDropShadow

Obtiene o establece un valor que indica si ContextMenu tiene el efecto de sombra habilitado.

HorizontalOffset

Obtiene o establece un valor que indica dónde se debe colocar a lo largo de la dirección x ContextMenu con respecto al control principal.

IsEnabled

Obtiene o establece un valor que indica si se puede mostrar ContextMenu.

Placement

Obtiene o establece un valor que especifica la posición de ContextMenu en relación con PlacementTarget o PlacementRectangle.

PlacementRectangle

Obtiene o establece el área relativa a la cual se coloca el menú contextual cuando se abre.

PlacementTarget

Obtiene o establece el control principal de ContextMenu.

ShowOnDisabled

Obtiene o establece un valor que indica si se debe mostrar ContextMenu cuando su elemento primario está deshabilitado.

VerticalOffset

Obtiene o establece un valor que indica dónde se debe colocar a lo largo de la dirección y ContextMenu con respecto al control principal.

Métodos

AddContextMenuClosingHandler(DependencyObject, ContextMenuEventHandler)

Agrega un controlador para el evento adjunto ContextMenuClosing.

AddContextMenuOpeningHandler(DependencyObject, ContextMenuEventHandler)

Agrega un controlador para el evento adjunto ContextMenuOpening.

GetContextMenu(DependencyObject)

Obtiene el valor de la propiedad ContextMenu del objeto especificado.

GetHasDropShadow(DependencyObject)

Obtiene un valor que indica si ContextMenu tiene un efecto de sombra.

GetHorizontalOffset(DependencyObject)

Obtiene el valor de la propiedad HorizontalOffset del objeto especificado.

GetIsEnabled(DependencyObject)

Obtiene el valor de la propiedad IsEnabled del objeto especificado.

GetPlacement(DependencyObject)

Obtiene el valor de la propiedad Placement del objeto especificado.

GetPlacementRectangle(DependencyObject)

Obtiene el valor de la propiedad PlacementRectangle del objeto especificado.

GetPlacementTarget(DependencyObject)

Obtiene el valor de la propiedad PlacementTarget del objeto especificado.

GetShowOnDisabled(DependencyObject)

Obtiene el valor de la propiedad ShowOnDisabled del objeto especificado.

GetVerticalOffset(DependencyObject)

Obtiene el valor de la propiedad VerticalOffset del objeto especificado.

RemoveContextMenuClosingHandler(DependencyObject, ContextMenuEventHandler)

Quita un controlador del evento adjunto ContextMenuClosing.

RemoveContextMenuOpeningHandler(DependencyObject, ContextMenuEventHandler)

Quita un controlador del evento adjunto ContextMenuOpening.

SetContextMenu(DependencyObject, ContextMenu)

Establece el valor de la propiedad ContextMenu del objeto especificado.

SetHasDropShadow(DependencyObject, Boolean)

Establece un valor que indica si ContextMenu tiene un efecto de sombra.

SetHorizontalOffset(DependencyObject, Double)

Establece el valor de la propiedad HorizontalOffset del objeto especificado.

SetIsEnabled(DependencyObject, Boolean)

Establece el valor de la propiedad IsEnabled del objeto especificado.

SetPlacement(DependencyObject, PlacementMode)

Establece el valor de la propiedad Placement del objeto especificado.

SetPlacementRectangle(DependencyObject, Rect)

Establece el valor de la propiedad PlacementRectangle del objeto especificado.

SetPlacementTarget(DependencyObject, UIElement)

Establece el valor de la propiedad PlacementTarget del objeto especificado.

SetShowOnDisabled(DependencyObject, Boolean)

Establece el valor de la propiedad ShowOnDisabled del objeto especificado.

SetVerticalOffset(DependencyObject, Double)

Establece el valor de la propiedad VerticalOffset del objeto especificado.

Eventos adjuntos

ContextMenuClosing

Se produce cuando se cierra el control ContextMenu.

ContextMenuOpening

Se produce cuando se abre ContextMenu.

Se aplica a

Consulte también