tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
382
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    C-H C-H ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Beiträge
    256
    Hallo!

    Kennt jemand ein gutes Tutorial in dem beschrieben wird wie man (ohne Bilder!) eine Form z.B. an den Ecken abrundet? Also so wie z.B. beim MSN Messanger? Oder auch komplexere Formen wie beim Windows Media Player?

    Danke schonmal.
     

  2. #2
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hi.

    Dieser Artikel auf CodeProject ist sicher ein guter Anfang.

    A Shaped Windows Form Application with Variable Opacity


    MfG,
    Alex
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  3. #3
    C-H C-H ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Beiträge
    256
    Das weiss ich schon wie das geht, trotzdem Danke!


    Mein Problem ist, dass dieser Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    [size=2][color=#0000ff]Dim[/color][/size][size=2] shape [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]New[/color][/size][size=2] System.Drawing.Drawing2D.GraphicsPath()
     
    [/size][size=2]shape.AddEllipse(0, 0, 20, 20)
     
    shape.AddEllipse([/size][size=2][color=#0000ff]Me[/color][/size][size=2].Width - 20, 0, 20, 20)
     
    shape.AddEllipse(0, [/size][size=2][color=#0000ff]Me[/color][/size][size=2].Height - 20, 20, 20)
     
    shape.AddEllipse([/size][size=2][color=#0000ff]Me[/color][/size][size=2].Width - 20, [/size][size=2][color=#0000ff]Me[/color][/size][size=2].Height - 20, 20, 20)
     
    [/size][size=2][color=#0000ff]Me[/color][/size][size=2].Region = [/size][size=2][color=#0000ff]New[/color][/size][size=2] System.Drawing.Region(shape)
     
    [/size]
    nicht so funktioniert wie ich will .

    Ich wollte halt an den 4 Ecken jeweils eine Ellipse zeichnen, und dann dazwischen mit Rechtecken ausfüllen.

    Leider scheint dort, wo sich die Ellipsen mit dem Rechteck überschneiden der Hintergrund, sprich die Form durch.
     

  4. #4
    C-H C-H ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Beiträge
    256
    Hallo!

    Mit ein bisschen Überlegen Hab' ich's geschafft. Ich poste morgen hier den Code, für den Interessierten.
     

  5. #5
    C-H C-H ist offline Mitglied Brokat
    Registriert seit
    Jan 2005
    Beiträge
    256
    So hier der Code:


    Zuerst einen GraphicsPath erstellen:
    Dim shapePath AsNew GraphicsPath(FillMode.Winding)

    Dann kann man mit verschiedenen Methoden einen Pfad erstellen. Exemplarisch hier mal ein abgerundetes Rechteck:

    ' Ecke links oben
    shapePath.AddArc(0, 0, 10, 10, 180, 90)

    ' Ecke rechts oben
    shapePath.AddArc(Me.Width - 10, 0, 10, 10, 270, 90)

    'Ecke unten rechts
    shapePath.AddArc(Me.Width - 10, Me.Height - 30, 10, 10, 0, 90)

    ' Ecke unten links
    shapePath.AddArc(0, Me.Height - 30, 10, 10, 90, 90)

    Die Linien zwischen den "Viertel-Kreisen" braucht man nicht anzugeben, mit dem Parameter True der Funktion "AddPath" wird der Pfad automatishc geschlossen. Nur sollte man auf die richtige Reihenfolge im Code achten, sonst kommt eine modernes Kunstwerk raus.

    Jetzt muss nur noch die sogenannte Region der Form ausgeschnitten werden:

    Dim shape AsNew GraphicsPath()
    shape.AddPath(shapePath, True)
    Me.Region = New System.Drawing.Region(shape)


     

Ähnliche Themen

  1. Form.KeyPreview - Kein KeyDown nach Form.Close() oder Form.Hide() *Argh*
    Von Christian Kusmanow im Forum .NET Windows Forms
    Antworten: 4
    Letzter Beitrag: 28.03.06, 14:56
  2. Antworten: 4
    Letzter Beitrag: 06.08.05, 05:24
  3. shaped popup
    Von cargo im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 17.06.05, 20:50
  4. StickyAd + Shaped PopUp
    Von Chernoby im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 07.04.04, 09:35
  5. [C++] Shaped Windows ohne Borland?
    Von IKEAFREAX im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 14.11.02, 15:16