Ciao, sto cercando di definire da codice il colore del fondo di una label con i parametri RGB.
Ho cercato sia qui sul forum che su google, ma non ho trovato ho forse non ho saputo trovare nulla.
Stesso problema con il Pane1
Si potrebbe usare anche qualcosa di questo genere; non sono certissimo della funzione scritta sotto, ho solo cercato di sfruttare FX.Color:
B4X:
Button1.Style = "-fx-background-color:" & StyleColorString(fx.Colors.Yellow)
...
Sub StyleColorString(FXColor As String) As String
Return "#" & FXColor.SubString(2) & ";"
End Sub
P.S. meglio ancora:
B4X:
Button1.Style = SetStyleBackground(fx.Colors.Red)
...
Sub SetStyleBackground(Color As Object) As String
Return "-fx-background-color:" & StyleColorString(Color)
End Sub
Sub StyleColorString(FXColor As String) As String
Return "#" & FXColor.SubString(2) & ";"
End Sub
Ho pubblicato sul "forum inglese" una domanda a questo riguardo ed Erel mi ha fatto notare (direi ricordare) che se imposti il colore da codice, perdi le eventuali caratteristiche impostate tramite Designer (per fare un esempio, gli angoli arrotondati di un panel b4a).
Infine (spero ), sempre considerando che si perdono proprietà impostate tramite Designer:
B4X:
' Sets the background color of a Node
' Color: pass a "JFX.Color" object
Sub SetBGColor(MyNode As Node, Color As Object)
Dim strColor As String = Color
MyNode.Style = "-fx-background-color:" & "#" & strColor.SubString(2) & ";"
End Sub
Dovrebbe funzionare con qualunque tipo di "view"... spero; al limite, inserite il codice in un blocco Try-Catch.
Erel mi ha indicato una sua classe che fa questa cosa in maniera migliore (se non erro, conserva le proprietà impostate da Designer... MO provo ... P.S. provato: esatto, conserva le proprietà, OTTIMO!) https://www.b4x.com/android/forum/threads/class-cssutils.61824/
Se l'avessi saputo prima, i miei due neuroni starebbero ancora in piedi
(beh, ho imparato qualcosa di nuovo, sperando di ricordarmelo )