我试图让我的treeview的复选框更大。根据{{3}},默认情况下状态图像的上限为16x16,为了使用更大的状态图像,我需要在app.config文件中指定此条目:
<appSettings>
<add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
我尝试将此添加到我的app.config并且它没有改变任何东西,问题是当我使用32x32复选框时,框架似乎实际上缩小了图像。
以下是我在treeview的构造函数中绘制和设置复选框的方法:
public class MultiStateTreeView : TreeView
{
public MultiStateTreeView() : base()
{
ImageList ilStateImages = new ImageList();
ilStateImages.ImageSize = new Size(32, 32);
for (int i = 0; i <= 4; i++)
{
Bitmap bmpCheckBox = new Bitmap(32, 32);
Graphics gfxCheckBox = Graphics.FromImage(bmpCheckBox);
switch (i)
{
case 0: cbsState = CheckBoxState.UncheckedNormal; break;
case 1: cbsState = CheckBoxState.CheckedNormal; break;
case 2: cbsState = CheckBoxState.MixedNormal; break;
case 3: cbsState = CheckBoxState.UncheckedDisabled; break;
case 4: cbsState = CheckBoxState.UncheckedDisabled; break;
}
CheckBoxRenderer.DrawCheckBox(gfxCheckBox, new Point(2, 2), cbsState);
gfxCheckBox.Save();
ilStateImages.Images.Add(bmpCheckBox);
}
base.CheckBoxes = true;
this.StateImageList = ilStateImages;
}
}
我有什么遗失的东西吗?