Adattare la dimensione del font in un Oggetto grafico se il testo occupa una lunghezza o un'altezza superiore a quella dell'Oggetto
Da Gambas-it.org - Wikipedia.
Versione del 20 nov 2024 alle 15:10 di Vuott (Discussione | contributi) (Creata pagina con "Qualora il testo presente in un ''Controllo'', che supporti la Proprietà ".Text" o ".RichText" occupi una lunghezza e/o un'altezza superiore a ''Controllo'' medesimo, e qualo...")
Qualora il testo presente in un Controllo, che supporti la Proprietà ".Text" o ".RichText" occupi una lunghezza e/o un'altezza superiore a Controllo medesimo, e qualora si intenda lasciare inalterate le Proprietà ".Width" e ".Height" dell'Oggetto, allora si dovrà ridurre ovviamente la dimensione del font utilizzato. [nota 1]
Mostriamo un esempio adoperando un Oggetto Label :
Private label1 As Label Private button1 As Button Public Sub Form_Open() With Me .W = 340 .H = 200 End With With label1 = New Label(Me) .X = 20 .Y = 10 .W = 300 .H = 50 .Font.Size = 30 .Text = "Testo qualsiasi aaaaaaaaa bb cc dddddd e ffffffff ggg hhhhhh l mmmmm\nSu\nTre righe" .Background = Color.Lighter(Color.Yellow) End With With button1 = New Button(Me) As "Button1" .X = Me.W - 100 .Y = Me.h - 80 .W = 80 .H = 50 End With End Public Sub Button1_Click() While (label1.W < label1.Font.TextWidth(label1.Text)) Or (label1.H < label1.Font.TextHeight(label1.Text)) ' Decrementa il valore della misura del "Font" utilizzato per il testo: Dec label1.Font.Size Wend End
L'ultima sub-routine può essere espressa anche usando la Classe Rect nel seguente modo:
Dim rc As Rect rc = label1.Font.TextSize(label1.Text) While (label1.W < rc.W) Or (label1.H < rc.H) Dec label1.Font.Size rc = label1.Font.TextSize(label1.Text) Wend
Note
[1] Vedere anche questa pagina: Adattare la dimensione di un Oggetto grafico al testo contenuto