+ 字体图标增加旋转角度参数SymbolRotate

This commit is contained in:
Sunny 2023-10-26 22:24:29 +08:00
parent b333d5ebce
commit 54351ce05d
2 changed files with 23 additions and 21 deletions

View File

@ -474,6 +474,8 @@ namespace Sunny.UI
if (symbol > 0) if (symbol > 0)
symbolSize = MenuHelper.GetSymbolSize(node); symbolSize = MenuHelper.GetSymbolSize(node);
Point symbolOffset = MenuHelper.GetSymbolOffset(node);
SizeF sf = TextRenderer.MeasureText(node.Text, Font); SizeF sf = TextRenderer.MeasureText(node.Text, Font);
Color textColor = ForeColor; Color textColor = ForeColor;
@ -519,7 +521,7 @@ namespace Sunny.UI
{ {
if (symbol > 0) if (symbol > 0)
{ {
e.Graphics.DrawFontImage(symbol, symbolSize, textColor, new Rectangle(NodeX + i * NodeSize.Width + (int)(NodeSize.Width - sf.Width - symbolSize) / 2, NodeY, symbolSize, NodeSize.Height)); e.Graphics.DrawFontImage(symbol, symbolSize, textColor, new Rectangle(NodeX + i * NodeSize.Width + (int)(NodeSize.Width - sf.Width - symbolSize) / 2, NodeY, symbolSize, NodeSize.Height), symbolOffset.X, symbolOffset.Y, MenuHelper.GetSymbolRotate(node));
} }
else else
{ {
@ -775,9 +777,9 @@ namespace Sunny.UI
return this; return this;
} }
public UINavBar SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24) public UINavBar SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24, int symbolRotate = 0)
{ {
MenuHelper.SetSymbol(node, symbol, symbolSize); MenuHelper.SetSymbol(node, symbol, symbolSize, symbolRotate);
return this; return this;
} }
@ -802,10 +804,10 @@ namespace Sunny.UI
return CreateNode(new NavMenuItem(page)); return CreateNode(new NavMenuItem(page));
} }
public TreeNode CreateNode(string text, int symbol, int symbolSize, int pageIndex) public TreeNode CreateNode(string text, int symbol, int symbolSize, int pageIndex, int symbolRotate = 0)
{ {
var node = CreateNode(text, pageIndex); var node = CreateNode(text, pageIndex);
SetNodeSymbol(node, symbol, symbolSize); SetNodeSymbol(node, symbol, symbolSize, symbolRotate);
return node; return node;
} }
@ -842,10 +844,10 @@ namespace Sunny.UI
return CreateChildNode(parent, new NavMenuItem(page)); return CreateChildNode(parent, new NavMenuItem(page));
} }
public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, int symbolSize, int pageIndex) public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, int symbolSize, int pageIndex, int symbolRotate = 0)
{ {
var node = CreateChildNode(parent, text, pageIndex); var node = CreateChildNode(parent, text, pageIndex);
SetNodeSymbol(node, symbol, symbolSize); SetNodeSymbol(node, symbol, symbolSize, symbolRotate);
return node; return node;
} }

View File

@ -725,7 +725,7 @@ namespace Sunny.UI
{ {
Color color = e.Node == SelectedNode ? SelectedForeColor : ForeColor; Color color = e.Node == SelectedNode ? SelectedForeColor : ForeColor;
Point offset = MenuHelper.GetSymbolOffset(e.Node); Point offset = MenuHelper.GetSymbolOffset(e.Node);
e.Graphics.DrawFontImage(MenuHelper.GetSymbol(e.Node), MenuHelper.GetSymbolSize(e.Node), color, new Rectangle(imageLeft, e.Bounds.Y, MenuHelper.GetSymbolSize(e.Node), e.Bounds.Height), offset.X, offset.Y); e.Graphics.DrawFontImage(MenuHelper.GetSymbol(e.Node), MenuHelper.GetSymbolSize(e.Node), color, new Rectangle(imageLeft, e.Bounds.Y, MenuHelper.GetSymbolSize(e.Node), e.Bounds.Height), offset.X, offset.Y, MenuHelper.GetSymbolRotate(e.Node));
} }
else else
{ {
@ -1073,15 +1073,15 @@ namespace Sunny.UI
return this; return this;
} }
public UINavMenu SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24) public UINavMenu SetNodeSymbol(TreeNode node, int symbol, int symbolSize = 24, int symbolRotate = 0)
{ {
MenuHelper.SetSymbol(node, symbol, symbolSize); MenuHelper.SetSymbol(node, symbol, symbolSize, symbolRotate);
return this; return this;
} }
public UINavMenu SetNodeSymbol(TreeNode node, int symbol, Point symbolOffset, int symbolSize = 24) public UINavMenu SetNodeSymbol(TreeNode node, int symbol, Point symbolOffset, int symbolSize = 24, int symbolRotate = 0)
{ {
MenuHelper.SetSymbol(node, symbol, symbolOffset, symbolSize); MenuHelper.SetSymbol(node, symbol, symbolOffset, symbolSize, symbolRotate);
return this; return this;
} }
@ -1116,17 +1116,17 @@ namespace Sunny.UI
return CreateNode(new NavMenuItem(page)); return CreateNode(new NavMenuItem(page));
} }
public TreeNode CreateNode(string text, int symbol, int symbolSize, int pageIndex) public TreeNode CreateNode(string text, int symbol, int symbolSize, int pageIndex, int symbolRotate = 0)
{ {
var node = CreateNode(text, pageIndex); var node = CreateNode(text, pageIndex);
SetNodeSymbol(node, symbol, symbolSize); SetNodeSymbol(node, symbol, symbolSize, symbolRotate);
return node; return node;
} }
public TreeNode CreateNode(string text, int symbol, Point symbolOffset, int symbolSize, int pageIndex) public TreeNode CreateNode(string text, int symbol, Point symbolOffset, int symbolSize, int pageIndex, int symbolRotate = 0)
{ {
var node = CreateNode(text, pageIndex); var node = CreateNode(text, pageIndex);
SetNodeSymbol(node, symbol, symbolOffset, symbolSize); SetNodeSymbol(node, symbol, symbolOffset, symbolSize, symbolRotate);
return node; return node;
} }
@ -1153,23 +1153,23 @@ namespace Sunny.UI
var childNode = CreateChildNode(parent, new NavMenuItem(page)); var childNode = CreateChildNode(parent, new NavMenuItem(page));
if (page.Symbol > 0) if (page.Symbol > 0)
{ {
MenuHelper.SetSymbol(childNode, page.Symbol, page.SymbolOffset, page.SymbolSize); MenuHelper.SetSymbol(childNode, page.Symbol, page.SymbolOffset, page.SymbolSize, page.SymbolRotate);
} }
return childNode; return childNode;
} }
public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, int symbolSize, int pageIndex) public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, int symbolSize, int pageIndex, int symbolRotate = 0)
{ {
var node = CreateChildNode(parent, text, pageIndex); var node = CreateChildNode(parent, text, pageIndex);
SetNodeSymbol(node, symbol, symbolSize); SetNodeSymbol(node, symbol, symbolSize, symbolRotate);
return node; return node;
} }
public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, Point symbolOffset, int symbolSize, int pageIndex) public TreeNode CreateChildNode(TreeNode parent, string text, int symbol, Point symbolOffset, int symbolSize, int pageIndex, int symbolRotate = 0)
{ {
var node = CreateChildNode(parent, text, pageIndex); var node = CreateChildNode(parent, text, pageIndex);
SetNodeSymbol(node, symbol, symbolOffset, symbolSize); SetNodeSymbol(node, symbol, symbolOffset, symbolSize, symbolRotate);
return node; return node;
} }