WP7在Windows Phone 7.1中添加像菜单一样的Ipad(复制,粘贴,剪切)

时间:2012-11-26 14:48:02

标签: webbrowser-control windows-phone-7.1

我正在开发Windows手机应用程序,我需要菜单,如选择了Ipad文本(剪切,复制,粘贴),还需要一些自定义菜单。当我在Windows手机中选择文本时,只有一个选项可以看到复制文本。

建议我解决问题的方法。

感谢名单

修改

<Border BorderThickness="3" Padding="6">
    <toolkit:GestureService.GestureListener>
        <toolkit:GestureListener Tap="GestureListener_Tap" />
    </toolkit:GestureService.GestureListener>
    <toolkit:ContextMenuService.ContextMenu>
        <toolkit:ContextMenu>
            <toolkit:MenuItem Header="item1" Click="Item1_Click" />
            <toolkit:MenuItem Header="item2" Click="Item2_Click" />
            <toolkit:MenuItem Header="item3" Click="Item3_Click" />
        </toolkit:ContextMenu>
    </toolkit:ContextMenuService.ContextMenu>
    <TextBlock Text="Tap" />
</Border>

private void GestureListener_Tap(object sender, GestureEventArgs e)
{
    Border border = sender as Border;
    ContextMenu contextMenu = ContextMenuService.GetContextMenu(border);
    if (contextMenu.Parent == null)
    {
        contextMenu.IsOpen = true;
    }
}

我已经使用了这段代码,但它生成了一个上下文菜单,如列表项,我不需要我需要圆角图像图标,如复制和粘贴或者它想要ipad或iphone选择文本菜单。

我想要菜单

Text Selection

1 个答案:

答案 0 :(得分:0)

请参阅我的问题与解答Here

然后添加Gesture事件监听器,如下面的代码还要注意,您必须包含Microsoft.Phone.Controls.Toolkit参考。

GestureListener listener = new GestureListener();
        listener.Hold += (sender, args) =>
        {
            // some logic here
            textSelectionMenu.Tag = args;
            textSelectionMenu.SelectedItem = null;
            textSelectionMenuPopup.IsOpen = true;
            activePopup = textSelectionMenuPopup;
            textSelectionMenu.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
            Size selectionMenuSize = textSelectionMenu.DesiredSize;
            System.Windows.Point pt = args.GetPosition(textSelectionMenu);
            double offsetX = 50;
            double offsetY = pt.Y;

            // Finally, make sure it's on the screen
            //offsetX = Math.Max(0, Math.Min(offsetX, selectionMenuSize.Width));
            //offsetY = Math.Max(0, Math.Min(offsetY, selectionMenuSize.Height));

            textSelectionMenuPopup.HorizontalOffset = offsetX;
            textSelectionMenuPopup.VerticalOffset = offsetY;
        };
        this.Browser.SetValue(GestureService.GestureListenerProperty, listener);