private void RebuildStateImageList()
{
_treeCtrl.BeginUpdate();
try
{
DisposeAll(_stateImageList.Images);
_stateImageList.Images.Clear();
Size stateImageSize = _stateImageList.ImageSize;
foreach (CheckState checkState in Enum.GetValues(typeof (CheckState)))
{
Bitmap bitmap = new Bitmap(stateImageSize.Width, stateImageSize.Height);
using (Graphics g = Graphics.FromImage(bitmap))
{
g.FillRectangle(Brushes.Transparent, 0, 0, stateImageSize.Width, stateImageSize.Height);
CheckBoxState checkBoxState = ConvertCheckState(checkState);
Size glyphSize = CheckBoxRenderer.GetGlyphSize(g, checkBoxState);
CheckBoxRenderer.DrawCheckBox(g,
new Point((stateImageSize.Width - glyphSize.Width)/2, (stateImageSize.Height - glyphSize.Height)/2),
checkBoxState);
}
_stateImageList.Images.Add(checkState.ToString(), bitmap);
}
}
finally
{
_treeCtrl.EndUpdate();
}
}