0
我想通過設置菜單讓用戶編輯應用程序UI顏色。 默認顏色在.css文件中定義,例如:如何在運行時覆蓋(編輯)CSS顏色?
.vertex {
-fx-fill: rgba(64, 196, 255, 1);
}
在上面的例子我想重寫-fx填充顏色無論用戶將會從顏色拾取對話框中選擇。有沒有可能在運行時更新CSS類屬性?怎麼樣 ?
我想通過設置菜單讓用戶編輯應用程序UI顏色。 默認顏色在.css文件中定義,例如:如何在運行時覆蓋(編輯)CSS顏色?
.vertex {
-fx-fill: rgba(64, 196, 255, 1);
}
在上面的例子我想重寫-fx填充顏色無論用戶將會從顏色拾取對話框中選擇。有沒有可能在運行時更新CSS類屬性?怎麼樣 ?
您可以在CSS文件中使用查到的顏色:
.vertex {
-vertex-fill: rgba(64, 196, 255, 1);
-fx-fill: -vertex-fill ;
}
,然後你可以使用內嵌樣式在運行時修改它。您可以在任何組件的祖先上調用setStyle()
,它將應用於所有後代組件。例如。適用與樣式類.vertex
場景改變的一切,現場設置的根的風格:
Color selectedColor = colorPicker.getValue();
int red = (int) (255 * selectedColor.getRed());
int green = (int) (255 * selectedColor.getGreen());
int blue = (int) (255 * selectedColor.getBlue());
double opacity = selectedColor.getOpacity();
String userColor = String.format("rgba(%d, %d, %d, %f)", red, green, blue, opacity) ;
scene.getRoot().setStyle("-vertex-fill: " + userColor + " ;");
如何參照具體的CSS類?你的例子我想在.root類中設置變量。 另外我沒有問這個問題明確,我不期望答案,但這對顏色編輯很重要 - 如何將顏色從.css轉換(讀取)到Color對象? – ievgen
@ievgen外部文件中的CSS將'-vertex-color'的值應用於CSS類'vertex'的任何東西的填充。 Java代碼更改'root'元素的'-vertex-color'的值,該元素將該值應用於根節點的所有後代。所以效果是改變CSS樣式類「頂點」的根節點的所有後代的填充。我添加了用於創建所選顏色的字符串表示的代碼。 –
理解,非常感謝! – ievgen