PopupMenu.ShowForSelectionAsync Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- IUICommand
- Rect
- ShowForSelectionAsync(Rect, Placement)
- UICommand
- Menambahkan menu konteks
- Sampel menu konteks
- Panduan dan daftar periksa untuk
- oncontextmenu
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
- IUICommand
- Rect
- ShowForSelectionAsync(Rect)
- UICommand
- Menambahkan menu konteks
- Sampel menu konteks
- Panduan dan daftar periksa untuk
- oncontextmenu