Wie erstelle ich ein User Control mit abgerundeten Ecken?
Ich versuche ein Benutzersteuerelement mit abgerundeten Ecken zu haben. Es hat keine feste Größe, aber normalerweise ist die Breite nicht viel größer als 120 Pixel.
ch brauche das Benutzersteuerelement und seinen Inhalt (eine Beschriftung und eine Tabelle), um abgerundete Kanten zu haben und wie eine runde Box auszusehe
Ich habe diesen Code verwendet.
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
int nLeftRect, // x-coordinate of upper-left corner
int nTopRect, // y-coordinate of upper-left corner
int nRightRect, // x-coordinate of lower-right corner
int nBottomRect, // y-coordinate of lower-right corner
int nWidthEllipse, // height of ellipse
int nHeightEllipse // width of ellipse
);
public static System.Drawing.Region GetRoundedRegion(int controlWidth, int controlHeight)
{
return System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, controlWidth - 5, controlHeight - 5, 20, 20));
}
Dies gibt dem Steuerelement abgerundete Ecken, aber nachdem es einige Male ausgeführt wurde und ich ein Vielfaches meines Benutzersteuerelements zu dem Formular hinzugefügt habe, wird es ein Leck verursachen und ich erhalte die Whitebox mit einem roten Kreuz auf meinen Benutzersteuerelementen.
Gibt es einen besseren Weg, dies zu tun?