Partager via


PopupMenu.ShowForSelectionAsync Méthode

Définition

Surcharges

ShowForSelectionAsync(Rect)

Affiche le menu contextuel au-dessus de la sélection spécifiée.

ShowForSelectionAsync(Rect, Placement)

Affiche le menu contextuel dans l’emplacement préféré par rapport à la sélection spécifiée.

ShowForSelectionAsync(Rect)

Affiche le menu contextuel au-dessus de la sélection spécifiée.

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)

Paramètres

selection
Rect

Coordonnées (en DIPs) du rectangle sélectionné, par rapport à la fenêtre. Le menu contextuel est placé directement au-dessus et centré sur ce rectangle de sorte que la sélection n’est pas couverte.

Notes

Pour VB, C# et C++, cette fenêtre est le CoreWindow associé au thread qui appelle le menu contextuel.

Retours

Objet IUICommand qui représente la commande de menu contextuel appelée par l’utilisateur, une fois l’appel ShowForSelectionAsync terminé.

Si aucune commande n’est appelée, ShowForSelectionAsync retourne null.

Attributs

Exemples

Avant de pouvoir afficher un menu contextuel, vous devez ajouter un écouteur d’événement pour l’événement oncontextmenu . Par exemple, l’exemple de menu contextuel écoute l’événement sur des éléments HTML spécifiques, puis appelle la scenario1AttachmentHandler fonction.

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");
    }
});

En outre, l’exemple de menu contextuel utilise deux fonctions d’assistance (getSelectionRect et getclientCoordinates) pour définir les coordonnées du rectangle de sélection.

// 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
    };
}

Remarques

Vous pouvez voir des exemples de code complets qui montrent comment créer et personnaliser des menus contextuels dans l’exemple de menu contextuel.

Voir aussi

S’applique à

ShowForSelectionAsync(Rect, Placement)

Affiche le menu contextuel dans l’emplacement préféré par rapport à la sélection spécifiée.

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)

Paramètres

selection
Rect

Coordonnées (en DIPs) du rectangle sélectionné, par rapport à la fenêtre.

Notes

Pour VB, C# et C++, cette fenêtre est le CoreWindow associé au thread qui appelle le menu contextuel.

preferredPlacement
Placement

Emplacement préféré du menu contextuel par rapport au rectangle de sélection.

Le menu contextuel est positionné dans le preferredPlacement si le menu s’intègre dans la fenêtre et ne couvre pas la sélection. Si le menu contextuel ne correspond pas à l’emplacement préféré, un autre emplacement qui ne couvre pas la sélection est utilisé. Si le menu contextuel ne convient nulle part ailleurs, un emplacement qui couvre partiellement ou entièrement la sélection est utilisé.

Retours

Objet IUICommand qui représente la commande de menu contextuel appelée par l’utilisateur, une fois l’appel ShowForSelectionAsync terminé.

Si aucune commande n’est appelée, ShowForSelectionAsync retourne null.

Attributs

Exemples

Avant de pouvoir afficher un menu contextuel, vous devez ajouter un écouteur d’événement pour l’événement oncontextmenu . Par exemple, l’exemple de menu contextuel écoute l’événement sur des éléments HTML spécifiques, puis appelle la scenario1AttachmentHandler fonction.

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

Remarques

Vous pouvez voir des exemples de code complets qui montrent comment créer et personnaliser des menus contextuels dans l’exemple de menu contextuel.

Voir aussi

S’applique à