* UITreeView: 调整了显示CheckBoxes时图片位置

This commit is contained in:
Sunny 2021-07-19 22:29:29 +08:00
parent 609791b3d3
commit 7e85f8d817
8 changed files with 172 additions and 83 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -29,40 +29,43 @@ namespace Sunny.UI.Demo
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("节点8");
System.Windows.Forms.TreeNode treeNode22 = new System.Windows.Forms.TreeNode("节点9");
System.Windows.Forms.TreeNode treeNode23 = new System.Windows.Forms.TreeNode("节点10");
System.Windows.Forms.TreeNode treeNode24 = new System.Windows.Forms.TreeNode("节点11");
System.Windows.Forms.TreeNode treeNode25 = new System.Windows.Forms.TreeNode("节点12");
System.Windows.Forms.TreeNode treeNode26 = new System.Windows.Forms.TreeNode("节点13");
System.Windows.Forms.TreeNode treeNode27 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode21,
treeNode22,
treeNode23,
treeNode24,
treeNode25,
treeNode26});
System.Windows.Forms.TreeNode treeNode28 = new System.Windows.Forms.TreeNode("节点14");
System.Windows.Forms.TreeNode treeNode29 = new System.Windows.Forms.TreeNode("节点15");
System.Windows.Forms.TreeNode treeNode30 = new System.Windows.Forms.TreeNode("节点16");
System.Windows.Forms.TreeNode treeNode31 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode28,
treeNode29,
treeNode30});
System.Windows.Forms.TreeNode treeNode32 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode33 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode34 = new System.Windows.Forms.TreeNode("节点4");
System.Windows.Forms.TreeNode treeNode35 = new System.Windows.Forms.TreeNode("节点5");
System.Windows.Forms.TreeNode treeNode36 = new System.Windows.Forms.TreeNode("节点6");
System.Windows.Forms.TreeNode treeNode37 = new System.Windows.Forms.TreeNode("节点17");
System.Windows.Forms.TreeNode treeNode38 = new System.Windows.Forms.TreeNode("节点18");
System.Windows.Forms.TreeNode treeNode39 = new System.Windows.Forms.TreeNode("节点19");
System.Windows.Forms.TreeNode treeNode40 = new System.Windows.Forms.TreeNode("节点7", new System.Windows.Forms.TreeNode[] {
treeNode37,
treeNode38,
treeNode39});
this.components = new System.ComponentModel.Container();
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("节点8");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("节点9");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("节点10");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("节点11");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("节点12");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("节点13");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4,
treeNode5,
treeNode6});
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("节点14");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("节点15");
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("节点16");
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode8,
treeNode9,
treeNode10});
System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点4");
System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点5");
System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("节点6");
System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("节点17");
System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点18");
System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点19");
System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点7", new System.Windows.Forms.TreeNode[] {
treeNode17,
treeNode18,
treeNode19});
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FTreeView));
this.uiLine1 = new Sunny.UI.UILine();
this.uiTreeView1 = new Sunny.UI.UITreeView();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
this.SuspendLayout();
//
// uiLine1
@ -82,59 +85,64 @@ namespace Sunny.UI.Demo
this.uiTreeView1.CheckBoxes = true;
this.uiTreeView1.FillColor = System.Drawing.Color.White;
this.uiTreeView1.Font = new System.Drawing.Font("微软雅黑", 12F);
this.uiTreeView1.ImageIndex = 0;
this.uiTreeView1.ImageList = this.imageList1;
this.uiTreeView1.Location = new System.Drawing.Point(30, 89);
this.uiTreeView1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiTreeView1.MinimumSize = new System.Drawing.Size(1, 1);
this.uiTreeView1.Name = "uiTreeView1";
treeNode21.Name = "节点8";
treeNode21.Text = "节点8";
treeNode22.Name = "节点9";
treeNode22.Text = "节点9";
treeNode23.Name = "节点10";
treeNode23.Text = "节点10";
treeNode24.Name = "节点11";
treeNode24.Text = "节点11";
treeNode25.Name = "节点12";
treeNode25.Text = "节点12";
treeNode26.Name = "节点13";
treeNode26.Text = "节点13";
treeNode27.Name = "节点0";
treeNode27.Text = "节点0";
treeNode28.Name = "节点14";
treeNode28.Text = "节点14";
treeNode29.Name = "节点15";
treeNode29.Text = "节点15";
treeNode30.Name = "节点16";
treeNode30.Text = "节点16";
treeNode31.Name = "节点1";
treeNode31.Text = "节点1";
treeNode32.Name = "节点2";
treeNode32.Text = "节点2";
treeNode33.Name = "节点3";
treeNode33.Text = "节点3";
treeNode34.Name = "节点4";
treeNode34.Text = "节点4";
treeNode35.Name = "节点5";
treeNode35.Text = "节点5";
treeNode36.Name = "节点6";
treeNode36.Text = "节点6";
treeNode37.Name = "节点17";
treeNode37.Text = "节点17";
treeNode38.Name = "节点18";
treeNode38.Text = "节点18";
treeNode39.Name = "节点19";
treeNode39.Text = "节点19";
treeNode40.Name = "节点7";
treeNode40.Text = "节点7";
treeNode1.Name = "节点8";
treeNode1.Text = "节点8";
treeNode2.Name = "节点9";
treeNode2.Text = "节点9";
treeNode3.Name = "节点10";
treeNode3.Text = "节点10";
treeNode4.Name = "节点11";
treeNode4.Text = "节点11";
treeNode5.Name = "节点12";
treeNode5.Text = "节点12";
treeNode6.Name = "节点13";
treeNode6.Text = "节点13";
treeNode7.ImageIndex = 0;
treeNode7.Name = "节点0";
treeNode7.Text = "节点0";
treeNode8.Name = "节点14";
treeNode8.Text = "节点14";
treeNode9.Name = "节点15";
treeNode9.Text = "节点15";
treeNode10.Name = "节点16";
treeNode10.Text = "节点16";
treeNode11.Name = "节点1";
treeNode11.Text = "节点1";
treeNode12.ImageIndex = 1;
treeNode12.Name = "节点2";
treeNode12.Text = "节点2";
treeNode13.Name = "节点3";
treeNode13.Text = "节点3";
treeNode14.Name = "节点4";
treeNode14.Text = "节点4";
treeNode15.Name = "节点5";
treeNode15.Text = "节点5";
treeNode16.Name = "节点6";
treeNode16.Text = "节点6";
treeNode17.Name = "节点17";
treeNode17.Text = "节点17";
treeNode18.Name = "节点18";
treeNode18.Text = "节点18";
treeNode19.Name = "节点19";
treeNode19.Text = "节点19";
treeNode20.Name = "节点7";
treeNode20.Text = "节点7";
this.uiTreeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode27,
treeNode31,
treeNode32,
treeNode33,
treeNode34,
treeNode35,
treeNode36,
treeNode40});
treeNode7,
treeNode11,
treeNode12,
treeNode13,
treeNode14,
treeNode15,
treeNode16,
treeNode20});
this.uiTreeView1.SelectedImageIndex = 0;
this.uiTreeView1.SelectedNode = null;
this.uiTreeView1.ShowLines = true;
this.uiTreeView1.Size = new System.Drawing.Size(266, 313);
@ -142,14 +150,24 @@ namespace Sunny.UI.Demo
this.uiTreeView1.Text = null;
this.uiTreeView1.TextAlignment = System.Drawing.ContentAlignment.MiddleCenter;
//
// FTreeView1
// imageList1
//
this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
this.imageList1.Images.SetKeyName(0, "16x16_blend.png");
this.imageList1.Images.SetKeyName(1, "16x16_bookmark.png");
this.imageList1.Images.SetKeyName(2, "16x16_bookmark_add.png");
this.imageList1.Images.SetKeyName(3, "16x16_bookmark_add2.png");
this.imageList1.Images.SetKeyName(4, "16x16_bookmark_folder.png");
//
// FTreeView
//
this.AllowShowTitle = true;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.uiLine1);
this.Controls.Add(this.uiTreeView1);
this.Name = "FTreeView1";
this.Name = "FTreeView";
this.Padding = new System.Windows.Forms.Padding(0, 35, 0, 0);
this.ShowTitle = true;
this.Symbol = 61499;
@ -162,5 +180,6 @@ namespace Sunny.UI.Demo
private UILine uiLine1;
private UITreeView uiTreeView1;
private System.Windows.Forms.ImageList imageList1;
}
}

View File

@ -117,4 +117,70 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAU
DQAAAk1TRnQBSQFMAgEBBQEAARABAAEQAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/w4AAv85AAFMARwDAAGT
AW8B/zEAB/EBSwEsAUwBHAIrAXQxAAH/B4UBSwUyAe8xAAGsAf8GBwF0ATIDWQExAQcxAAGsBv8BGgEy
BVkBTDEAAawF/wGaAVMGXgFZAUwwAAGsARkB9AEZAdwB2wH3A1IBWQFeAVkCUgF0MAABrAEZAfQBGQHc
AtsB2gHUAbMBUgFeAUwBhQHxMQABrAH/BBkB2wHaAtQBcwFZAa4BhQHxMQAGrAH/AxkBvAExAdoBhQHx
MQABrAMZAdwB2wWsAa0BrAGFAfExAAGsAxkB3AHbAtoB1ATTAYUyAAGsAf8EGQesNAAFrIwAAfYBTAEa
Af8EAAH/ARoBRgH2BAAB9gFMARoB/wQAAf8BGgFJAfYHAAL/AbwBbgFvAlMB/wEAAf8DAAHwBAcBvAUH
AfEEAAH/ASsBTQFSARsCAAEbA0wB/wQAAf8BKwFNAVIBGwIAARsBTAFJAVABSQYAAf8B8AFvAVMBMgFG
AjIB8wJTAgABdAQxAzcBMQErAiUBKwH3AwAB/wExATIBLAFSApMBTAEyASwBdAUAAf8BMQEyASwBUgKT
AUwBKAFWAVcBUAFtBAAB9AGTAW8BMgH7ATgBMgL7AVMBOAH7AXoB8gJZATICOAFZAV4BWQE4ATIDLAEq
Af8DAAF1AzICUwIyASwBmQYAAXUDMgJTASkBeAGfAVcBVgEvAewBAAH/AfQBkwIXAUcBOAFeAXoCoAF6
AV4BOAH0ARoB5QVZAl4BWQFTAk0BLAErAfIDAAEaATIBOAMyAjgBKwEbBgABGgEyATgCMgFRAUkBcgGf
AVcBVgEoASIBAAHzAZMEFwFNAlkCwwJZAZMB/wEaAaABWQFTA1kCXgFZAVMDTQErAfIDAAEaATIGOAEr
AfMGAAEaATIDOAJSAUoBnwFXAVYBIgHwAf8BkwUXAU0BWQHlAsMB5QFZAXQB9AEaAaABWQFTA1kBXgJZ
AVMDTQErAfMCAAH0AXoBMgZZATEBdAH0BAAB9AF6ATIFWQFKAcMBfgFXASIBAAHxAxcC4wFNATgCWQLl
AlkBOAGaARoBoAFZAVMDWQFeAlkBUwNNASsB8wEAAfQBeglZATEBdAH0AgAB9AF6B1kBSgEcAXgBUAEi
AQABbwEXBOMBUwE4ATIBUwI4AU0BMgE4AXQBGgGgAVkBUwNZAV4CWQFTA00BKwLzAZoBWQleAVkBUgGT
AvMBmgFZB14DVwFRASkB8wFHARcC4wMWAlMB4wIyARcCTQGTARoBoAFZAVMDWQFeAlkBUwNNASsB8wGa
AVMBegNZBF4EWQFMAZMBmgFTAXoDWQReBFkBTAGTAUcC4wIWA5QCFgJTAhcBRwGTARoBoAFZAVMDWQFe
AlkBUwNNASsB8gMaAXoBmgF1AVkCXgFZAXQBmQF0AZkFGgF6AZoBdQFZAl4BWQF0AZkBdAGZAhoBFwHj
ARYHlAEWAuMBFwFHAW4BGgGgAVkBUwNZAV4CWQFTAk0BLAErAfIFAAHzAVMCXgFTARsB/wkAAfMBUwJe
AVMBGwH/BAAB4wIWA5QEvQKUARYBFwFHAW8B8QH2AXoDWQNeAVkBUwJNAVMBKwH/BgABdQFeAVkBdAwA
AXUBXgFZAXQGAAGUARYClAG3B70BlAEWARcBkwEAAsMIoAKaAVMBHAcAARoBWQFTARoMAAEaAVkBUwEa
BgAB9AG9ApQIvQKUAeMB8QEAAf8BvAiZApMBvAgAAf8CUwH/DAAB/wJTAf8HAAHzBhoB9AHzA70BlAGT
Af8XAAKaDgACmgkABP8BAAH0ARoC8wG9ARoBkwH/AQABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEA
AQEGAAEBFgAD/wEAAf8B+QYAAf8BOAYAAYABAQcAAQEHAAEBBwABARcAAQEHAAEBBwABAQcAAQEHAAED
BwABBwYAAYMB/wYAAv8GAAL/BMMB+AEFAcABAwHBAYMBwQGDAfABAQGAAQEBwAEHAcABAQHgAwAB4AEH
AeABAAGAAwAB4AEHAeABAAGAAwAB4AEHAeAFAAHAAQMBwAEBBAABgAEBAYABARwAAfgBDwH4AQ8EAAH8
AT8B/AE/AgABgAEBAfwBPwH8AT8CAAGAAQMB/AE/AfwBPwGAAQAC/wH+AX8B/gF/AcIBAQs=
</value>
</data>
</root>

View File

@ -651,7 +651,11 @@ namespace Sunny.UI
var haveImage = false;
var sf = e.Graphics.MeasureString(e.Node.Text, Font);
if (CheckBoxes) drawLeft += 16;
if (CheckBoxes)
{
drawLeft += 16;
imageLeft += 16;
}
if (ImageList != null && ImageList.Images.Count > 0 && e.Node.ImageIndex >= 0 &&
e.Node.ImageIndex < ImageList.Images.Count)