Я использую C #, VisualStudio 2010 и создал пользовательский UserControl для приложения Windows Forms.У них нет особого поведения, кроме как показывать себя и позволять себя тащить в другое место.Однако они имеют круглую форму, и я не могу правильно отобразить их, когда они перекрываются по углам.
Вот мой код для рисования их на экране:
public void Circle_Paint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
g.FillEllipse(brushForOuterCircle, 0, 0, Width, Height);
g.FillEllipse(brushForInnerCircle, lineWidth, lineWidth, Width - 2*lineWidth, Height - 2*lineWidth);
if(!textLocation.HasValue)
{
SizeF m = g.MeasureString(text, textFont);
textLocation = new PointF((float)((Width - m.Width)/2.0), (float)((Height - m.Height)/2.0));
}
g.DrawString(text, textFont, brushForText, textLocation.Value);
}
Вот примернеправильное отображение, юго-восточная часть круга AB не отображается, потому что CD переопределяет эту область.
Как мне предотвратить это, есть ли способ сообщить UserControl "вы прозрачны по умолчанию; любая часть, на которую я не рисую, должна оставаться такой"?