У меня есть пользовательский элемент управления, который я использую в качестве резиновой ленты, которая рисует синюю рамку и полупрозрачную середину.Я управляю событиями мыши вниз / переместить, чтобы изменить размер панели.Кажется, что все работает нормально, когда вызывается событие перемещения мыши, все рисует, как я и ожидал, но когда мышь перестает двигаться, некоторые пользовательские элементы управления под полупрозрачностью перерисовываются сверху.Игра с z-порядком ничего не делает.
Вот прозрачная панель:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT
return cp;
}
}
protected override void OnPaint(PaintEventArgs pe)
{
pe.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(128, 101, 135, 196)), this.ClientRectangle);
pe.Graphics.DrawRectangle(Pens.DarkBlue,
pe.ClipRectangle.Left,
pe.ClipRectangle.Top,
this.Width - 1,
this.Height - 1);
}
protected override void OnPaintBackground(PaintEventArgs pevent)
{
//do not allow the background to be painted
}
protected override void OnSizeChanged(EventArgs e)
{
base.OnSizeChanged(e);
}