* UITreeView: TreeNode支持imagekey绑定图标

This commit is contained in:
Sunny 2022-10-28 21:58:27 +08:00
parent 21ed20c9e2
commit 6aff886a99

View File

@ -27,6 +27,7 @@
* 2022-04-01: V3.1.2 SetNodePainter * 2022-04-01: V3.1.2 SetNodePainter
* 2022-05-15: V3.1.8 * 2022-05-15: V3.1.8
* 2022-05-15: V3.1.8 CheckBox状态的NodeClickChangeCheckBoxes * 2022-05-15: V3.1.8 CheckBox状态的NodeClickChangeCheckBoxes
* 2022-10-28: V3.2.6 TreeNode支持imagekey绑定图标
******************************************************************************/ ******************************************************************************/
using System; using System;
@ -951,7 +952,13 @@ namespace Sunny.UI
imageLeft += 16; imageLeft += 16;
} }
if (ImageList != null && ImageList.Images.Count > 0 && e.Node.ImageIndex >= 0 && e.Node.ImageIndex < ImageList.Images.Count) if (ImageList != null && ImageList.Images.Count > 0 && ImageList.Images.ContainsIndex(e.Node.ImageIndex))
{
haveImage = true;
drawLeft += ImageList.ImageSize.Width + 6;
}
if (!haveImage && ImageList != null && ImageList.Images.Count > 0 && ImageList.Images.ContainsKey(e.Node.ImageKey))
{ {
haveImage = true; haveImage = true;
drawLeft += ImageList.ImageSize.Width + 6; drawLeft += ImageList.ImageSize.Width + 6;
@ -997,13 +1004,22 @@ namespace Sunny.UI
if (haveImage) if (haveImage)
{ {
if (e.Node == SelectedNode && e.Node.SelectedImageIndex >= 0 && Image image = null;
e.Node.SelectedImageIndex < ImageList.Images.Count) if (ImageList.Images.ContainsIndex(e.Node.ImageIndex))
e.Graphics.DrawImage(ImageList.Images[e.Node.SelectedImageIndex], imageLeft, image = ImageList.Images[e.Node.ImageIndex];
e.Bounds.Y + (e.Bounds.Height - ImageList.ImageSize.Height) / 2); if (image == null && ImageList.Images.ContainsKey(e.Node.ImageKey))
else image = ImageList.Images[e.Node.ImageKey];
e.Graphics.DrawImage(ImageList.Images[e.Node.ImageIndex], imageLeft,
e.Bounds.Y + (e.Bounds.Height - ImageList.ImageSize.Height) / 2); if (e.Node == SelectedNode)
{
if (ImageList.Images.ContainsIndex(e.Node.SelectedImageIndex))
image = ImageList.Images[e.Node.SelectedImageIndex];
if (image == null && ImageList.Images.ContainsKey(e.Node.SelectedImageKey))
image = ImageList.Images[e.Node.SelectedImageKey];
}
if (image != null)
e.Graphics.DrawImage(image, imageLeft, e.Bounds.Y + (e.Bounds.Height - ImageList.ImageSize.Height) / 2);
} }
if (CheckBoxes) if (CheckBoxes)