使用Popup在Windows 8中的上下文菜单

时间:2013-03-06 17:58:19

标签: xaml windows-8 winrt-xaml

您好我正在尝试使用Popup在Windows 8中创建上下文菜单。在右键单击按钮时,我调用以下函数

private async void UIElement_OnRightTapped(object sender, RightTappedRoutedEventArgs e)
    {
        PopupMenu popUpMenu = new PopupMenu();
        popUpMenu.Commands.Add(new UICommand("File"));
        Rect rect = GetRect(sender);
        var result= await popUpMenu.ShowForSelectionAsync(rect, Placement.Right);
    }

GetRect方法的定义如下: -

private Rect GetRect(object sender)
    {
        FrameworkElement element = sender as FrameworkElement;
        GeneralTransform elementTransform = element.TransformToVisual(null);
        Point point = elementTransform.TransformPoint(new Point());
        Size size = new Size(element.ActualWidth, element.ActualHeight);
        Rect rect = new Rect(point, size);
        return rect;
    }

虽然GetRect返回正确的值,但我仍然得到结果为null。

请帮忙

2 个答案:

答案 0 :(得分:0)

我无法弄清楚你为什么遇到这个问题。在第一个视图中,一切看起来都很好。

也许Tim Heuer Callisto软件包包含了一种更简单的方法,可以满足您的需求。请参阅this示例。

答案 1 :(得分:0)

这是因为你没有点击文件命令,而是点击页面上的其他地方。