123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- namespace System.Windows.Forms
- {
- public class ToolStripDropDownButtonBase : ToolStripDropDownItem
- {
- private CustomControls.DropDownButtonBase button;
- public ToolStripDropDown DropDown { get; set; }
- public override ToolStripItemCollection DropDownItems => DropDown.Items;
- public override System.Drawing.Size ImageSize
- {
- get => new System.Drawing.Size((int)button.ImageWidth, (int)button.ImageHeight);
- set
- {
- button.ImageWidth = value.Width;
- button.ImageHeight = value.Height;
- }
- }
- public bool Vertical
- {
- get => button.IsVertical;
- set => button.IsVertical = value;
- }
- public bool IsDropDownOpen
- {
- get => button.IsDropDownOpen;
- set => button.IsDropDownOpen = value;
- }
- protected void SetButton(CustomControls.DropDownButtonBase button)
- {
- this.button = button;
- SetControl(button);
- button.VerticalAlignment = VerticalAlignment.Stretch;
- }
- protected override void OnFontChanged(EventArgs e)
- {
- base.OnFontChanged(e);
- DropDown.Font = Font;
- }
- public override void ApplyStyle(ToolStripProfessionalRenderer r)
- {
- button.Foreground = r.Foreground;
- button.Resources["Button.Static.Background"] = r.ButtonStaticBackground;
- button.Resources["Button.Static.Border"] = r.ButtonStaticBorder;
- button.Resources["Button.MouseOver.Background"] = r.ButtonMouseOverBackground;
- button.Resources["Button.MouseOver.Border"] = r.ButtonMouseOverBorder;
- button.Resources["Button.Arrow.Background"] = r.ButtonArrowBackground;
- DropDown.Renderer = r;
- if (Parent?.Vertical ?? false)
- button.Margin = new Thickness(0, 0, 0, 3);
- }
- internal override void ResetImage()
- {
- base.ResetImage();
- button.Image = ImageSource;
- }
- protected override void UpdateText()
- {
- base.UpdateText();
- if (button != null)
- button.Text = DisplayStyle == ToolStripItemDisplayStyle.None || DisplayStyle == ToolStripItemDisplayStyle.Image ? "" : Text;
- }
- public ToolStripDropDownButtonBase()
- {
- DropDown = new ContextMenuStrip();
- DropDown.Opening += (s, e) => OnDropDownOpening(e);
- DropDown.Opened += (s, e) =>
- {
- OnDropDownOpened(e);
- IsDropDownOpen = true;
- };
- DropDown.Closed += (s, e) =>
- {
- OnDropDownClosed(e);
- IsDropDownOpen = false;
- };
- (DropDown as ContextMenuStrip).ItemClicked += (s, e) => OnDropDownItemClicked(e);
- DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
- }
- }
- }
|