PopupMenu.ShowForSelectionAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
ShowForSelectionAsync(Rect) |
Muestra el menú contextual situado encima de la selección especificada. |
ShowForSelectionAsync(Rect, Placement) |
Muestra el menú contextual en la ubicación preferida en relación con la selección especificada. |
ShowForSelectionAsync(Rect)
Muestra el menú contextual situado encima de la selección especificada.
public:
virtual IAsyncOperation<IUICommand ^> ^ ShowForSelectionAsync(Rect selection) = ShowForSelectionAsync;
/// [Windows.Foundation.Metadata.Overload("ShowAsyncWithRect")]
IAsyncOperation<IUICommand> ShowForSelectionAsync(Rect const& selection);
[Windows.Foundation.Metadata.Overload("ShowAsyncWithRect")]
public IAsyncOperation<IUICommand> ShowForSelectionAsync(Rect selection);
function showForSelectionAsync(selection)
Public Function ShowForSelectionAsync (selection As Rect) As IAsyncOperation(Of IUICommand)
Parámetros
- selection
- Rect
Coordenadas (en DIP) del rectángulo seleccionado, en relación con la ventana. El menú contextual se coloca directamente encima y se centra en este rectángulo para que la selección no esté cubierta.
Nota
Para VB, C# y C++, esta ventana es coreWindow asociada al subproceso que llama al menú contextual.
Devoluciones
Objeto IUICommand que representa el comando de menú contextual invocado por el usuario, una vez completada la llamada a ShowForSelectionAsync.
Si no se invoca ningún comando, ShowForSelectionAsync devuelve null.
- Atributos
Ejemplos
Para poder mostrar un menú contextual, debe agregar un agente de escucha de eventos para el evento oncontextmenu . Por ejemplo, el ejemplo de menú contextual escucha el evento en elementos HTML específicos y, a continuación, llama a la scenario1AttachmentHandler
función .
document.getElementById("attachment").addEventListener("contextmenu", attachmentHandler, false);
// We don't want to obscure content, so pass in the position representing the selection area.
menu.showForSelectionAsync(clientToWinRTRect(document.selection.createRange().getBoundingClientRect())).then(function (invokedCommand) {
if (invokedCommand !== null) {
switch (invokedCommand.id) {
case 1: // Copy
var selectedText = window.getSelection();
copyTextToClipboard(selectedText);
var message = "'Copy' button clicked and '" + /*@static_cast(String)*/selectedText + "' copied to clipboard";
WinJS.log && WinJS.log(message, "sample", "status");
break;
case 2: // Highlight
// Add command handler code here.
WinJS.log && WinJS.log("'Highlight' button clicked", "sample", "status");
break;
case 3: // Look up
// Add command handler code here.
WinJS.log && WinJS.log("'Look up' button clicked", "sample", "status");
break;
default:
break;
}
} else {
// The command is null if no command was invoked.
WinJS.log && WinJS.log("Context menu dismissed", "sample", "status");
}
});
Además, el ejemplo de menú contextual usa dos funciones auxiliares (getSelectionRect
y getclientCoordinates
) para establecer las coordenadas del rectángulo de selección.
// Converts from client to WinRT coordinates, which take scale factor into consideration.
function clientToWinRTRect(rect) {
var zoomFactor = document.documentElement.msContentZoomFactor;
return {
x: (rect.left + document.documentElement.scrollLeft - window.pageXOffset) * zoomFactor,
y: (rect.top + document.documentElement.scrollTop - window.pageYOffset) * zoomFactor,
width: rect.width * zoomFactor,
height: rect.height * zoomFactor
};
}
Comentarios
Puede ver ejemplos de código completos que muestran cómo crear y personalizar menús contextuales en el ejemplo de menú contextual.
Consulte también
- IUICommand
- Rect
- ShowForSelectionAsync(Rect, Placement)
- UICommand
- Agregar menús contextuales
- Ejemplo de menú contextual
- Directrices y lista de comprobación para
- oncontextmenu
Se aplica a
ShowForSelectionAsync(Rect, Placement)
Muestra el menú contextual en la ubicación preferida en relación con la selección especificada.
public:
virtual IAsyncOperation<IUICommand ^> ^ ShowForSelectionAsync(Rect selection, Placement preferredPlacement) = ShowForSelectionAsync;
/// [Windows.Foundation.Metadata.Overload("ShowAsyncWithRectAndPlacement")]
IAsyncOperation<IUICommand> ShowForSelectionAsync(Rect const& selection, Placement const& preferredPlacement);
[Windows.Foundation.Metadata.Overload("ShowAsyncWithRectAndPlacement")]
public IAsyncOperation<IUICommand> ShowForSelectionAsync(Rect selection, Placement preferredPlacement);
function showForSelectionAsync(selection, preferredPlacement)
Public Function ShowForSelectionAsync (selection As Rect, preferredPlacement As Placement) As IAsyncOperation(Of IUICommand)
Parámetros
- selection
- Rect
Coordenadas (en DIP) del rectángulo seleccionado, en relación con la ventana.
Nota
Para VB, C# y C++, esta ventana es coreWindow asociada al subproceso que llama al menú contextual.
- preferredPlacement
- Placement
Ubicación preferida del menú contextual con respecto al rectángulo de selección.
El menú contextual se coloca en preferredPlacement si el menú se ajusta a la ventana y no cubre la selección. Si el menú contextual no cabe en la ubicación preferida, se usa otra ubicación que no cubre la selección. Si el menú contextual no cabe en ningún otro lugar, se utiliza una ubicación que cubre parcialmente o totalmente la selección.
Devoluciones
Objeto IUICommand que representa el comando de menú contextual invocado por el usuario, una vez completada la llamada a ShowForSelectionAsync .
Si no se invoca ningún comando, ShowForSelectionAsync devuelve null.
- Atributos
Ejemplos
Para poder mostrar un menú contextual, debe agregar un agente de escucha de eventos para el evento oncontextmenu . Por ejemplo, el ejemplo de menú contextual escucha el evento en elementos HTML específicos y, a continuación, llama a la scenario1AttachmentHandler
función .
document.getElementById("attachment").addEventListener("contextmenu", attachmentHandler, false);
// Converts from client to WinRT coordinates, which take scale factor into consideration.
function clientToWinRTRect(rect) {
var zoomFactor = document.documentElement.msContentZoomFactor;
return {
x: (rect.left + document.documentElement.scrollLeft - window.pageXOffset) * zoomFactor,
y: (rect.top + document.documentElement.scrollTop - window.pageYOffset) * zoomFactor,
width: rect.width * zoomFactor,
height: rect.height * zoomFactor
};
}
Comentarios
Puede ver ejemplos de código completos que muestran cómo crear y personalizar menús contextuales en el ejemplo de menú contextual.
Consulte también
- IUICommand
- Rect
- ShowForSelectionAsync(Rect)
- UICommand
- Agregar menús contextuales
- Ejemplo de menú contextual
- Directrices y lista de comprobación para
- oncontextmenu