Bagikan melalui


PopupMenu.ShowForSelectionAsync Metode

Definisi

Overload

ShowForSelectionAsync(Rect)

Memperlihatkan menu konteks di atas pilihan yang ditentukan.

ShowForSelectionAsync(Rect, Placement)

Memperlihatkan menu konteks dalam penempatan pilihan relatif terhadap pilihan yang ditentukan.

ShowForSelectionAsync(Rect)

Memperlihatkan menu konteks di atas pilihan yang ditentukan.

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)

Parameter

selection
Rect

Koordinat (dalam DIP) persegi panjang yang dipilih, relatif terhadap jendela. Menu konteks ditempatkan tepat di atas dan dipusatkan pada persegi panjang ini sehingga pilihan tidak tercakup.

Catatan

Untuk VB, C#, dan C++, jendela ini adalah CoreWindow yang terkait dengan utas yang memanggil menu konteks.

Mengembalikan

Objek IUICommand yang mewakili perintah menu konteks yang dipanggil oleh pengguna, setelah panggilan ShowForSelectionAsync selesai.

Jika tidak ada perintah yang dipanggil, ShowForSelectionAsync mengembalikan null.

Atribut

Contoh

Sebelum dapat menampilkan menu konteks, Anda harus menambahkan pendengar peristiwa untuk peristiwa oncontextmenu . Misalnya, sampel menu Konteks mendengarkan peristiwa pada elemen HTML tertentu, lalu memanggil scenario1AttachmentHandler fungsi .

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

Selain itu, sampel menu Konteks menggunakan dua fungsi pembantu (getSelectionRect dan getclientCoordinates) untuk mengatur koordinat untuk persegi panjang pilihan.

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

Keterangan

Anda dapat melihat contoh kode lengkap yang menunjukkan cara membuat dan menyesuaikan menu konteks di sampel menu Konteks.

Lihat juga

Berlaku untuk

ShowForSelectionAsync(Rect, Placement)

Memperlihatkan menu konteks dalam penempatan pilihan relatif terhadap pilihan yang ditentukan.

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)

Parameter

selection
Rect

Koordinat (dalam DIP) persegi panjang yang dipilih, relatif terhadap jendela.

Catatan

Untuk VB, C#, dan C++, jendela ini adalah CoreWindow yang terkait dengan utas yang memanggil menu konteks.

preferredPlacement
Placement

Penempatan menu konteks yang disukai relatif terhadap persegi panjang pilihan.

Menu konteks diposisikan di preferredPlacement jika menu pas di jendela dan tidak mencakup pilihan. Jika menu konteks tidak sesuai dengan penempatan pilihan, penempatan lain yang tidak mencakup pilihan akan digunakan. Jika menu konteks tidak pas di tempat lain, penempatan yang sebagian atau sepenuhnya mencakup pilihan akan digunakan.

Mengembalikan

Objek IUICommand yang mewakili perintah menu konteks yang dipanggil oleh pengguna, setelah panggilan ShowForSelectionAsync selesai.

Jika tidak ada perintah yang dipanggil, ShowForSelectionAsync mengembalikan null.

Atribut

Contoh

Sebelum dapat menampilkan menu konteks, Anda harus menambahkan pendengar peristiwa untuk peristiwa oncontextmenu . Misalnya, sampel menu Konteks mendengarkan peristiwa pada elemen HTML tertentu, lalu memanggil scenario1AttachmentHandler fungsi .

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

Keterangan

Anda dapat melihat contoh kode lengkap yang menunjukkan cara membuat dan menyesuaikan menu konteks di sampel menu Konteks.

Lihat juga

Berlaku untuk