0

我正在使用 Visual Studio 2012

嗨,我已经尝试了所有想到的事情来尝试这样做,但我找不到答案。

我试过这个:mi1.PointerPressed() 它没有用。我尝试了很多方法,但在 callisto 中找不到帮助解释我如何在菜单项中放置命令的内容。如果有人知道并可以帮助我,我会非常感谢你。xD

Flyout flyOut = new Flyout();
flyOut.PlacementTarget = sender as UIElement;
flyOut.Placement = PlacementMode.Bottom;

Menu m = new Menu();
m.MinWidth = 110;
MenuItem mi1 = new MenuItem();
mi1.Text = "Some Option";

MenuItem mi2 = new MenuItem();
mi2.Text = "Another Option Here";

m.Items.Add(mi1);
m.Items.Add(new MenuItemSeparator());
m.Items.Add(mi2);

flyOut.Content = m;

flyOut.IsOpen = true;

嗨,你如何展示它是一种方式,但是搜索更多,我向开发人员发送了一封电子邮件,我找到了使用 callisto 的最佳方式

        private void ShowFlyoutMenu(object sender, RoutedEventArgs e)
        {
        Flyout flyOut = new Flyout();
        flyOut.PlacementTarget = sender as UIElement;
        flyOut.Placement = PlacementMode.Bottom;


        Menu m = new Menu();
        m.MinWidth = 110;
        MenuItem mi1 = new MenuItem();
        mi1.Text = "TE";
        mi1.Tapped += mi1_Tapped;


        m.Items.Add(mi1);
        m.Items.Add(new MenuItemSeparator());
        m.Items.Add(mi2);

        flyOut.Content = m;

        flyOut.IsOpen = true;

        UpdateLayout();
    }


    private void mi1_Tapped(object sender, TappedRoutedEventArgs e)
    {
    /**YOUR CODE*/
    }
4

1 回答 1

0

似乎 MenuItem 不处理传统的基于事件的代码,您需要使用 MenuItem 实现/使用 ICommand 实现。两个最常见的是来自 MVVM Light Toolkit的RelayCommand和来自 Prism 的DelegateCommand 。您可以从 CodePlex 中获取 DelegateCommand 及其基类代码,将其放入您的项目中,然后您将执行以下操作来使用 MenuItem:

mi1.Command = new DelegateCommand(() => do something ...);
于 2013-05-20T20:40:31.103 回答