public PopupMenuSeperator() : base(null, PopupMenu.CreateSeperator(null)) { }
public PopupMenuItem(string iconUrl, bool addIconMargin, params UIElement[] elements) { //this.Margin = new Thickness(0, -1, 0, 0); CloseOnClick = true; // Add right sided image _imageRight = new Image { MinWidth = 0, Margin = new Thickness(0, -3, 0, -3), }; DockPanel.SetDock(_imageRight, Dock.Right); this.Children.Add(_imageRight); // Add left icon margin if (addIconMargin) { _imageLeft = new Image { MinWidth = 0, Margin = new Thickness(0, -3, 3, -3), }; if (!string.IsNullOrEmpty(iconUrl)) { ImagePath = iconUrl; } _verticalMargin = new Rectangle { Width = 0, Margin = new Thickness(0, -3, 3, -3), Fill = PopupMenu.MakeColorGradient(Color.FromArgb(4, 0, 0, 0), Color.FromArgb(100, 255, 255, 255), 0) }; if (elements != null && elements.Length > 0 && elements[0] is TextBlock) { _textBlock = elements[0] as TextBlock; } DockPanel.SetDock(_textBlock, Dock.Top); this.Children.Add(_imageLeft); this.Children.Add(_verticalMargin); } // Add title this.Children.Add(_textBlock); // Add custom elements if any if (elements != null) { foreach (UIElement element in elements) { if (element != null && element != _textBlock) { if ((element as FrameworkElement).Parent is Panel) { ((element as FrameworkElement).Parent as Panel).Children.Remove(element); } this.Children.Add(element); DockPanel.SetDock(element, Dock.Top); } } } // Close parent popup on click this.MouseLeftButtonUp += (sender, e) => { if ((sender is PopupMenuItem) && (sender as PopupMenuItem).CloseOnClick) { //PopupMenu.CloseAllOpenMenus(); } }; }