MenuFlyout - 编码项目

MenuFlyout - code an Item

我刚刚创建了一个小弹出窗口:

MenuFlyout flyout = new MenuFlyout();
flyout.Items.Add(new X_UWP_App.Models.MyMenuFlyoutItem() { Text = "Copy" });
flyout.ShowAt(rect);

我可以标记文本。标记文本后,此弹出窗口中会出现 "Copy"。 现在我想知道如何将一些代码放在 "Copy"?

后面

我也想过这样的事情,但好像不太对。

public void onFlyoutItemClick(object sender, FlyoutItemClickEventArgs e)
{
    var dataPackage = new DataPackage();
    dataPackage.SetText(SelGetText());
    Clipboard.SetContent(dataPackage);
}

------ 上面的部分得到了回答。这一行下面是我的下一个相关问答----

                var dataPackage = new DataPackage();
                dataPackage.SetText(m_view.vSelGetText());
                Clipboard.SetContent(dataPackage);

这就是这 3 行的真实样子。请注意 m_view.vSelGetText() 不起作用。 m_view 未在此 class 中分配。我怎么能实现它所以它被分配了。因为现在如果我点击 "Copy" 它会复制 "Copy"。这是我得到的错误:"An object reference is required for the non-static field, method, or property x.m_view"

您的代码看起来正确,您已经实现了 MyMenuFlyoutItem,您可以像下面这样在 class 中添加 onFlyoutItemClick

class MyMenuFlyoutItem : MenuFlyoutItem
{
    public MyMenuFlyoutItem()
    {
        this.Click += MyMenuFlyoutItem_Click;
    }

    private void MyMenuFlyoutItem_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
    {
        var dataPackage = new DataPackage();
        dataPackage.SetText(SelGetText());
        Clipboard.SetContent(dataPackage);
    }

    private string SelGetText()
    {
        return this.Text;
    }
}