Я создал обычай checkBox
, чтобы увеличить высоту прямоугольника checkbox
. Я переопределяю OnPaint method
, как показано ниже. Когда я делаю управление прозрачным, фон становится белым, а не прозрачным. В чем может быть проблема?OnPaint Paint Issue
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
int h = this.Height;
if (BackColor == Color.Transparent)
{
pevent.Graphics.Clear(this.Parent.BackColor);
}
else
{
pevent.Graphics.Clear(BackColor);
}
Rectangle rc = new Rectangle(new Point(0, 0), new Size(h, h));
ControlPaint.DrawCheckBox(pevent.Graphics, rc,
this.Checked ? ButtonState.Checked : ButtonState.Normal);
SizeF stringMeasure = pevent.Graphics.MeasureString(Text, Font);
int topOffset = (int)(ClientRectangle.Height - stringMeasure.Height)/2;
pevent.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), this.Height, topOffset);
}
Что вы подразумеваете под «сделать контроль прозрачным»? Я попробовал установить цвет фона в trasnparant, но все работает нормально. –