VB.Net-Forum - Beitragsübersicht -
ThemaV03: Autosize bei Label unter CANVAS
Von stan
Datum 17. März 2016 um 22:42:33
Frage VB.NET 2016

HI,

ich habe ein CANVAS Feld und möchte darin via Code dynamisch Labels einfügen - die genau mittig beim Mauszeiger gesetzt werden
            Dim lab As Label
lab = New Controls.Label
lab.Content = "Hallo"

cBoard.Children.Add(lab)
Canvas.SetTop(lab, e.GetPosition(cBoard).Y)
Canvas.SetLeft(lab, e.GetPosition(cBoard).X - (lab.Width / 2))
Allerdings hat das Label als Breite keinen vernüftigen Wert, wordurch die Berechnung der Mitte(lab.Width / 2) nur Müll liefert. Ich vermute, dass es am Canvas liegt - aber ich komm nicht dahinter. Kann mir jemand helfen?

Beste Grüße
stan
Antwort:
Von Nico
E-Mail nico.schertler@studentpartners.de
Datum 18. März 2016 um 08:17:05
Antwort Hallo,

die Breite des Labels ist nicht gesetzt (steht auf Auto). Deswegen nützt dir diese Eigenschaft nichts. Du bräuchtest die ActualWidth. Allerdings wird auch die noch keinen sinnvollen Wert haben, da direkt nach dem Erstellen noch kein Layout-Pass durchgeführt wurde.
Die sauberste Variante ist, auf Abschluss des Layout-Passes zu warten:
Dispatcher.BeginInvoke(Sub()
Canvas.SetTop(lab, e.GetPosition(cBoard).Y)
Canvas.SetLeft(lab, e.GetPosition(cBoard).X - (lab.ActualWidth / 2)))
End Sub)
Du kannst auch über die FormattedText Klasse die Breite des Labels abschätzen und damit rechnen.
Übrigens ist für reinen Text die TextBlock Klasse gedacht.

Nico
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ]
Antworten
V03: Autosize bei Label unter CANVAS - stan 17. März 2016 um 22:42:33
Re: Autosize bei Label unter CANVAS - Nico 18. März 2016 um 08:17:05
Re: Autosize bei Label unter CANVAS - Stan 19. März 2016 um 10:03:52
Re: Autosize bei Label unter CANVAS - Nico 20. März 2016 um 17:45:12

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  VB.Net 2003
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum VB.Net-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | VB/VBA-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015