我正在使用Popover,它用作Textfield的工具提示類幫助顯示。 它包含一個Label和TextArea作爲內容,並在用戶輸入文本字段時創建。 (通過FocusPropery.addListener
)Controlsfx PopOver風格和焦點
我申請使用樣式:
popOver.getRoot().getStylesheets().add(...)
該方法適用於文本區域(如文檔documentation中發現的),但只爲partialy標籤。
我的風格是這樣的:
*{
-tb-dark-grey: rgb(32,38,44);
}
.root {
-fx-base: -tb-dark-grey;
-fx-background: -tb-dark-grey;
-fx-control-inner-background: -tb-dark-grey;
}
這在我的主窗口的工作非常好。包括所有標籤和TextAreas。一切都會得到一個帶有白色文字的深藍色背景。 但對於Popover中的標籤,僅將文本顏色更改爲白色,但背景保持通常的淺灰色。
我嘗試使用TextArea作爲解決方法。這適用於風格。但它始終竊取文本字段的重點。這使得鍵入內容變得不可能。禁用TextArea的作品,但改變了TextArea的風格。
我已經嘗試應用在this other question中找到的樣式。 我也嘗試讓重點回來,這也沒有工作。
popup.Show(this.inputField)
this.inputField.requestFocus(); // also tried this with Platform.runLater
作品。這基本上是我最終使用的解決方案。我不喜歡明確剝皮標籤的想法。作爲更通用的解決方案,我編寫了一個輔助類來創建彈出窗口,將所需內容包裝到VBox中,並將我的基本顏色作爲背景應用於VBox。 'vBox.setStyle(「 - fx-background-color:-tb-skin-base;」);'這種方式適用於所有可能的上下文形式,不僅適用於Label。這使我的CSS更清潔。也謝謝指出TextArea的顏色。 – FrankT