PopupMenu.ShowAsync(Point) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
显示指定客户端坐标处的上下文菜单。
public:
virtual IAsyncOperation<IUICommand ^> ^ ShowAsync(Point invocationPoint) = ShowAsync;
IAsyncOperation<IUICommand> ShowAsync(Point const& invocationPoint);
public IAsyncOperation<IUICommand> ShowAsync(Point invocationPoint);
function showAsync(invocationPoint)
Public Function ShowAsync (invocationPoint As Point) As IAsyncOperation(Of IUICommand)
参数
- invocationPoint
- Point
触发 oncontextmenu 事件时,相对于用户手指或鼠标指针的窗口,DIP 中) (坐标。 菜单位于此点的上方并居中。
注意
对于 VB、C# 和 C++,此窗口是与调用上下文菜单的线程关联的 CoreWindow 。
返回
一个 IUICommand 对象,该对象表示在 ShowAsync 调用完成后由用户调用的上下文菜单命令。
如果未调用任何命令,则 ShowAsync 返回 null。
示例
在显示上下文菜单之前,必须为 oncontextmenu 事件添加事件侦听器。 例如, 上下文菜单示例 侦听特定 HTML 元素上的 事件,然后调用 scenario1AttachmentHandler
函数。
document.getElementById("attachment").addEventListener("contextmenu", attachmentHandler, false);
menu.commands.append(new Windows.UI.Popups.UICommand("Save attachment", onSaveAttachment));
// We don't want to obscure content, so pass in the position representing the selection area.
// We registered command callbacks; no need to handle the menu completion event
menu.showAsync(pageToWinRT(e.pageX, e.pageY)).then(function (invokedCommand) {
if (invokedCommand === null) {
// The command is null if no command was invoked.
WinJS.log && WinJS.log("Context menu dismissed", "sample", "status");
}
});
此外,请确保检查调用了命令,并根据需要为应用处理该情况。 如果调用的 UICommand 在示例) onSaveAttachment
中具有 (回调函数,则将执行回调函数。 否则,可能需要使用 UICommand.Id 来标识和处理调用的命令。
注解
可以在 上下文菜单示例中查看演示如何创建和自定义上下文菜单的完整代码示例。