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); }
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); }