Пример #1
0
        private void OnTargetWidgetMouseDown(NMouseButtonEventArgs args)
        {
            NGroupBox ownerGroupBox = (NGroupBox)args.CurrentTargetNode.GetFirstAncestor(NGroupBox.NGroupBoxSchema);
            string    groupBoxTitle = ((NLabel)ownerGroupBox.Header.Content).Text;

            if ((groupBoxTitle.StartsWith("Left") && args.Button != ENMouseButtons.Left) ||
                (groupBoxTitle.StartsWith("Right") && args.Button != ENMouseButtons.Right))
            {
                return;
            }

            // Mark the event as handled
            args.Cancel = true;

            // Create and show the popup
            CreateMenuDelegate createMenuDelegate = (CreateMenuDelegate)args.CurrentTargetNode.Tag;
            NMenu contextMenu = createMenuDelegate();

            NPopupWindow.OpenInContext(new NPopupWindow(contextMenu), args.CurrentTargetNode, args.ScreenPosition);
        }
Пример #2
0
        private NWidget CreateWidget(string text, CreateMenuDelegate createMenuDelegate)
        {
            NLabel label = new NLabel(text);

            label.HorizontalPlacement = ENHorizontalPlacement.Center;
            label.VerticalPlacement   = ENVerticalPlacement.Center;
            label.TextFill            = new NColorFill(NColor.Black);

            NContentHolder widget = new NContentHolder(label);

            widget.HorizontalPlacement = ENHorizontalPlacement.Left;
            widget.VerticalPlacement   = ENVerticalPlacement.Top;
            widget.BackgroundFill      = new NColorFill(NColor.PapayaWhip);
            widget.Border          = NBorder.CreateFilledBorder(NColor.Black);
            widget.BorderThickness = new NMargins(1);
            widget.PreferredSize   = new NSize(200, 100);
            widget.Tag             = createMenuDelegate;
            widget.MouseDown      += new Function <NMouseButtonEventArgs>(OnTargetWidgetMouseDown);

            return(widget);
        }