PopupMenu.ShowForSelectionAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
ShowForSelectionAsync(Rect) |
Отображает контекстное меню над указанным выбранным элементом. |
ShowForSelectionAsync(Rect, Placement) |
Отображает контекстное меню в предпочтительном размещении относительно указанного выделения. |
ShowForSelectionAsync(Rect)
Отображает контекстное меню над указанным выбранным элементом.
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)
Параметры
- selection
- Rect
Координаты (в DIP) выбранного прямоугольника относительно окна. Контекстное меню размещается непосредственно над этим прямоугольником по центру, чтобы выделение не было охвачено.
Примечание
Для VB, C# и C++ это окно является Окном CoreWindow , связанным с потоком, вызывающим контекстное меню.
Возвращаемое значение
Объект IUICommand , представляющий команду контекстного меню, вызываемую пользователем после завершения вызова ShowForSelectionAsync.
Если команда не вызывается, ShowForSelectionAsync возвращает значение NULL.
- Атрибуты
Примеры
Перед отображением контекстного меню необходимо добавить прослушиватель событий для события oncontextmenu . Например, пример контекстного меню прослушивает событие в определенных элементах HTML, а затем вызывает функцию scenario1AttachmentHandler
.
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");
}
});
Кроме того, в примере контекстного меню используются две вспомогательные функции (getSelectionRect
и getclientCoordinates
) для задания координат для прямоугольника выбора.
// 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
};
}
Комментарии
Полные примеры кода, демонстрирующие создание и настройку контекстных меню, см. в примере контекстного меню.
См. также раздел
- IUICommand
- Rect
- ShowForSelectionAsync(Rect, Placement)
- UICommand
- Добавление контекстных меню
- Пример контекстного меню
- Рекомендации и контрольный список для
- oncontextmenu
Применяется к
ShowForSelectionAsync(Rect, Placement)
Отображает контекстное меню в предпочтительном размещении относительно указанного выделения.
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)
Параметры
- selection
- Rect
Координаты (в DIP) выбранного прямоугольника относительно окна.
Примечание
Для VB, C# и C++ это окно является Окном CoreWindow , связанным с потоком, вызывающим контекстное меню.
- preferredPlacement
- Placement
Предпочтительное расположение контекстного меню относительно выделенного прямоугольника.
Контекстное меню размещается в preferredPlacement, если меню помещается в окне и не охватывает выделенный фрагмент. Если контекстное меню не помещается в предпочтительный вариант размещения, используется другое размещение, которое не охватывает выбранные элементы. Если контекстное меню не помещается в другое место, используется размещение, которое частично или полностью охватывает выбор.
Возвращаемое значение
Объект IUICommand , представляющий команду контекстного меню, вызываемую пользователем после завершения вызова ShowForSelectionAsync .
Если команда не вызывается, ShowForSelectionAsync возвращает значение NULL.
- Атрибуты
Примеры
Перед отображением контекстного меню необходимо добавить прослушиватель событий для события oncontextmenu . Например, пример контекстного меню прослушивает событие в определенных элементах HTML, а затем вызывает функцию scenario1AttachmentHandler
.
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
};
}
Комментарии
Полные примеры кода, демонстрирующие создание и настройку контекстных меню, см. в примере контекстного меню.
См. также раздел
- IUICommand
- Rect
- ShowForSelectionAsync(Rect)
- UICommand
- Добавление контекстных меню
- Пример контекстного меню
- Рекомендации и контрольный список для
- oncontextmenu