* UINavMenu:增加设置二级菜单底色

This commit is contained in:
Sunny 2021-03-12 10:11:49 +08:00
parent be62929977
commit 640f4592b9
8 changed files with 65 additions and 21 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -29,10 +29,10 @@
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("控件");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("窗体");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("图表");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("主题");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("控件");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("窗体");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("图表");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("主题");
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FMain));
this.uiLogo1 = new Sunny.UI.UILogo();
this.uiAvatar = new Sunny.UI.UIAvatar();
@ -46,35 +46,39 @@
//
// Aside
//
this.Aside.ExpandSelectFirst = false;
this.Aside.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(240)))), ((int)(((byte)(240)))));
this.Aside.ItemHeight = 36;
this.Aside.LineColor = System.Drawing.Color.Black;
this.Aside.Location = new System.Drawing.Point(2, 145);
this.Aside.MenuStyle = Sunny.UI.UIMenuStyle.Black;
this.Aside.SecondBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(66)))), ((int)(((byte)(66)))), ((int)(((byte)(66)))));
this.Aside.ShowOneNode = true;
this.Aside.ShowSecondBackColor = true;
this.Aside.ShowTips = true;
this.Aside.Size = new System.Drawing.Size(250, 573);
this.Aside.Style = Sunny.UI.UIStyle.Custom;
this.Aside.StyleCustomMode = true;
//
// Header
//
this.Header.Controls.Add(this.uiAvatar);
this.Header.Controls.Add(this.uiLogo1);
this.Header.Location = new System.Drawing.Point(2, 35);
treeNode1.ImageIndex = 1;
treeNode1.Name = "节点0";
treeNode1.Text = "控件";
treeNode2.Name = "节点1";
treeNode2.Text = "窗体";
treeNode3.Name = "节点2";
treeNode3.Text = "图表";
treeNode4.Name = "节点2";
treeNode4.Text = "主题";
treeNode5.ImageIndex = 1;
treeNode5.Name = "节点0";
treeNode5.Text = "控件";
treeNode6.Name = "节点1";
treeNode6.Text = "窗体";
treeNode7.Name = "节点2";
treeNode7.Text = "图表";
treeNode8.Name = "节点2";
treeNode8.Text = "主题";
this.Header.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4});
treeNode5,
treeNode6,
treeNode7,
treeNode8});
this.Header.SelectedIndex = 0;
this.Header.Size = new System.Drawing.Size(1020, 110);
this.Header.Style = Sunny.UI.UIStyle.Custom;

View File

@ -338,6 +338,7 @@ namespace Sunny.UI
selectedColor = uiColor.SelectedColor;
foreColor = uiColor.UnSelectedForeColor;
hoverColor = uiColor.HoverColor;
secondBackColor = uiColor.SecondBackColor;
if (Bar != null)
{
@ -445,6 +446,38 @@ namespace Sunny.UI
node.ImageIndex = imageIndex;
}
private bool showSecondBackColor;
[DefaultValue(false)]
[Description("显示二级节点背景颜色"), Category("SunnyUI")]
public bool ShowSecondBackColor
{
get => showSecondBackColor;
set
{
showSecondBackColor = value;
Invalidate();
}
}
private Color secondBackColor = UIColor.Blue;
[DefaultValue(typeof(Color), "66, 66, 66")]
[Description("二级节点背景颜色"), Category("SunnyUI")]
public Color SecondBackColor
{
get => secondBackColor;
set
{
if (secondBackColor != value)
{
secondBackColor = value;
_style = UIStyle.Custom;
Invalidate();
}
}
}
protected override void OnDrawNode(DrawTreeNodeEventArgs e)
{
if (BorderStyle != BorderStyle.None)
@ -495,7 +528,13 @@ namespace Sunny.UI
}
else
{
e.Graphics.FillRectangle(fillColor, new Rectangle(new Point(0, e.Node.Bounds.Y), new Size(Width, e.Node.Bounds.Height)));
Color color = fillColor;
if (showSecondBackColor && e.Node.Level > 0)
{
color = SecondBackColor;
}
e.Graphics.FillRectangle(color, new Rectangle(new Point(0, e.Node.Bounds.Y), new Size(Width, e.Node.Bounds.Height)));
e.Graphics.DrawString(e.Node.Text, Font, ForeColor, drawLeft, e.Bounds.Y + (ItemHeight - sf.Height) / 2.0f);
}

View File

@ -54,7 +54,7 @@ namespace Sunny.UI
public virtual Color SelectedColor => Color.FromArgb(36, 36, 36);
public virtual Color UnSelectedForeColor => Color.FromArgb(240, 240, 240);
public virtual Color HoverColor => Color.FromArgb(76, 76, 76);
public virtual Color SecondBackColor => Color.FromArgb(66, 66, 66);
public override string ToString()
{
return Style.DisplayText();
@ -74,9 +74,10 @@ namespace Sunny.UI
public class UIMenuWhiteColor : UIMenuColor
{
public override UIMenuStyle Style => UIMenuStyle.White;
public override Color BackColor => Color.FromArgb(250, 250, 250);
public override Color SelectedColor => Color.FromArgb(240, 240, 240);
public override Color BackColor => Color.FromArgb(240, 240, 240);
public override Color SelectedColor => Color.FromArgb(250, 250, 250);
public override Color UnSelectedForeColor => UIFontColor.Primary;
public override Color HoverColor => Color.FromArgb(230, 230, 230);
public override Color SecondBackColor => Color.FromArgb(235, 235, 235);
}
}