0

私は Windows Phone アプリケーションに取り組んでおり、選択された Ipad テキスト (切り取り、コピー、貼り付け) のようなメニューが必要で、いくつかのカスタム メニューも必要です。Windows Phone でテキストを選択すると、テキストのコピーが表示されるオプションが 1 つだけ表示されます。

私の問題の解決策を提案してください。

ありがとう

編集

<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の選択テキストメニューが必要です。

みたいなメニューが欲しい

テキストの選択

4

1 に答える 1

0

ここで私の質問と回答を参照してください

次に、以下のコードのようにジェスチャ イベント リスナを追加します。また、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);
于 2012-12-07T11:27:18.097 に答える