2009-08-25 9 views
4

Comment créer des fenêtres avec des formes irrégulières en utilisant WinForms et C#?C# Winforms Irregular Windows

+0

Quelle est votre définition d'irrégulier? – rahul

+0

Je devine sans regard normal de WinForm avec la barre de titre, les frontières, etc. – Svish

+0

pas de fenêtres irrégulières comme certaines peaux de Windows Media Player que nous avons vu, obtenir le point non pas des bords rectangulaires ou arrondis. – Moon

Répondre

6

Il existe plusieurs façons d'y parvenir. L'un est l'utilisation utilisation TransparencyKey (comme dans le message souligné par Nifle). Un autre est d'assigner un objet Region à la propriété Region de la forme:

System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath(); 
path.AddPolygon(new[] 
{ 
    new Point(20, 20), 
    new Point(40, 10), 
    new Point(180, 70), 
    new Point(160, 260), 
    new Point(80, 140) 
}); 
path.AddEllipse(40, 40, 300, 300); 
this.Region = new Region(path); 

Notez que les coordonnées se réfèrent à la fenêtre, pas la zone client. Notez également comment les figures qui se chevauchent dans l'objet GraphicsPath "s'inversent" par défaut (cela peut être évité en définissant path.FillMode = FillMode.Winding).

Questions connexes