• ContextMenu的使用


    ContextMenu的使用

    下面代码的效果是右键单击图片时,显示菜单。当单击菜单的某项时,执行相应的命令。

    Image.RightTapped += new RightTappedEventHandler(Image_RightTapped);
    

     

            async void Image_RightTapped(object sender, RightTappedRoutedEventArgs e)
            {
                var menu = new PopupMenu();
                menu.Commands.Add(new UICommand("Open with", (command) =>
                    {
                        Display.Text = "'" + command.Label + "' selected";
                    }));
                menu.Commands.Add(new UICommand("Save attachment", (command) =>
                {
                    Display.Text = "'" + command.Label + "' selected";
                }));
    
                var chosenCommand = await menu.ShowForSelectionAsync(GetElementRect((FrameworkElement)sender));
                if (chosenCommand == null)
                {
                    Display.Text = "Context menu dismissed";
                }
            }
    

      

            Rect GetElementRect(FrameworkElement element)
            {
                GeneralTransform buttonTransform = element.TransformToVisual(null);
                Point point = buttonTransform.TransformPoint(new Point());
                return new Rect(point, new Size(element.ActualWidth, element.ActualHeight));
            }
    

      效果图:

     

    2、文本的ContextMenuOpening事件

    Scenario2TextBox.ContextMenuOpening += new ContextMenuOpeningEventHandler(Scenario2TextBox_ContextMenuOpening);

            async void Scenario2TextBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
            {
                // Create a menu and add commands specifying an id value for each instead of a delegate.
                var menu = new PopupMenu();
                menu.Commands.Add(new UICommand("Copy", null, 1));
                menu.Commands.Add(new UICommandSeparator());
                menu.Commands.Add(new UICommand("Highlight", null, 2));
                menu.Commands.Add(new UICommand("Look up on dictionary", null, 3));
    
                // We don't want to obscure content, so pass in a rectangle representing the sender of the context menu event.
                // We registered command callbacks; no need to await and handle context menu completion
                var chosenCommand = await menu.ShowForSelectionAsync(GetElementRect((FrameworkElement)sender));
                if (chosenCommand != null)
                {
                    switch ((int)chosenCommand.Id)
                    {
                        case 1:
                            Output2Text.Text = "'" + chosenCommand.Label + "'(" + chosenCommand.Id.ToString() + ") selected";
                            break;
    
                        case 2:
                            Output2Text.Text = "'" + chosenCommand.Label + "'(" + chosenCommand.Id.ToString() + ") selected";
                            break;
    
                        case 3:
                            Output2Text.Text = "'" + chosenCommand.Label + "'(" + chosenCommand.Id.ToString() + ") selected";
                            break;
                    }
                }
                else
                {
                    Output2Text.Text = "Context menu dismissed";
                }
            }
    

      效果图:

    效果是右键文本框时,弹出菜单。如上图。

     

    作者:Work Hard Work Smart
    出处:http://www.cnblogs.com/linlf03/
    欢迎任何形式的转载,未经作者同意,请保留此段声明!

  • 相关阅读:
    对于有API接口数据的监测
    网站、域名、IP、URL、URI、IRI
    面向对象总结
    封装示例:游戏开发
    面向对象基础2
    继承与多态
    如何引用第三方同级以及不同级目录下的的py文件
    Weblogic常见报错以及解决方法
    深度解读企业云上办公利器「无影云电脑」
    java根据模板导出pdf
  • 原文地址:https://www.cnblogs.com/linlf03/p/2403972.html
Copyright © 2020-2023  润新知