emeriks
Goto Top

VB.Net - Label-Control skalieren

Hi,
kann man im Visual Studion ein Label-Control skalieren?

Bsp.:
Ich habe eine verfügbare Fläche, welches vollständig durch ein Text-Label eingenommen werden soll. Der Text ist statisch.
Jedoch mit keiner der vorhandenen Schriftarten bekomme ich es hin, dass der Text (ohne Umbruch) die volle Breite und Höhe einnimmt.
Also dachte ich mir: Nimm eine Schriftart, welche die Breite füllt. Dann ziehe das Label vertikal auf die gewünschte Höhe, aber so, dass der Text ebenfalls in der Höhe skaliert wird.

Ich dachte, das würde mit der Methode Control.Scale gehen, aber damit verschiebt der nur das Control innerhalb des Parent-Controls und ändert dessen Größe, wenn "Autosize = False" ist. Der Text behält seine Größe.

Hat jemand ne Idee?

E.

Content-ID: 359375

Url: https://administrator.de/contentid/359375

Ausgedruckt am: 24.11.2024 um 23:11 Uhr

135051
135051 29.12.2017 aktualisiert um 09:25:08 Uhr
Goto Top
Folgende Methode im Form Resize Event aufrufen sollte reichen.
http://csharphelper.com/blog/2015/04/size-a-font-to-fit-a-label-in-c/

Gruß @135051
Volchy
Volchy 29.12.2017 um 09:37:18 Uhr
Goto Top
Moin emeriks,

ich hoffe, ich habe dich richtig verstanden.

Bsp:
Darstellung im Designer:
1

Gesetzte Optionen:
Anchor = Top,Left
AutoSize = False
Dock = Top
TextAlign = TopCenter
Font Size = 10

Code innerhalb der Form
Public Class Form1
    Private Sub Form1_SizeChanged(sender As Object, e As System.EventArgs) Handles Me.SizeChanged
        Label1.Size = New System.Drawing.Size(ClientSize.Width / 3, ClientSize.Height / 3)
        Label1.Font = New System.Drawing.Font("Arial", ClientSize.Height / 20)  
    End Sub
End Class

Darstellung bei unterschiedlicher Größe des Fensters:
2

3

LG
Volchy
135051
135051 29.12.2017 aktualisiert um 09:55:01 Uhr
Goto Top
Label1.Size
Das hättest du schon mit Anchor = Top,Left,Right erreicht face-smile

Außerdem soll es kein Umbruch geben, oben verlinkten Funktion erledigt das zuverlässig.

Btw. würde ich hier persönlich zu WPF switchen.
emeriks
emeriks 29.12.2017 um 10:56:26 Uhr
Goto Top
@@135051
So ähnlich habe ich es jetzt gelöst. Das kommt schon nahe, ist aber nicht das, was ich erreichen will.
emeriks
emeriks 29.12.2017 um 10:57:03 Uhr
Goto Top
@Volchy
Nein, das meine ich nicht.
135051
135051 29.12.2017 aktualisiert um 11:01:50 Uhr
Goto Top
Und was willst du erreichen?
Soll der Font verzerrt werden so dass er immer das Rechteck komplett ausfüllt egal welches Seitenverhältnis die Form hat? Dann wirst du aus dem Text ein Graphics erzeugen müssen und daraus ein Image das du skalierst.
emeriks
emeriks 29.12.2017 um 11:10:04 Uhr
Goto Top
Habe das mal mit einem Grafik-Programm simuliert.

Habe Form mit verfügbarrer Fläche.
Suche mir Schriftart und Größe, mit welcher ich die Breite fülle.
unbenannt

Und jetzt ziehe ich das auf die verfügbare Höhe.
unbenannt2

Verständlich?
emeriks
emeriks 29.12.2017 aktualisiert um 11:11:24 Uhr
Goto Top
Zitat von @135051:
Soll der Font verzerrt werden so dass er immer das Rechteck komplett ausfüllt egal welches Seitenverhältnis die Form hat? Dann wirst du aus dem Text ein Graphics erzeugen müssen und daraus ein Image das du skalierst.
Ja genau so.
Hab ich befürchtet, dass es nur so geht ... face-sad