当表格视图聚焦时,我想在 javafx 中停用显示蓝色边框的第一行(见图)。我在我的 css 中尝试了很多东西都没有成功。我也没有在论坛中找到有用的贡献。
提前谢谢
以下对我有用:
.table-view:focused .table-row-cell:focused {
-fx-background-color: -fx-table-cell-border-color, -fx-background;
-fx-background-insets: 0, 0 0 1 0;
}
Run Code Online (Sandbox Code Playgroud)
解释:
该默认样式表有重点,非选择-行下面的CSS规则:
/* focused cell (keyboard navigation) */
.table-view:focused:row-selection > .virtual-flow > .clipped-container > .sheet > .table-row-cell:focused {
-fx-background-color: -fx-background, -fx-cell-focus-inner-border, -fx-background;
-fx-background-insets: 0, 1, 2;
}
Run Code Online (Sandbox Code Playgroud)
这是通过绘制具有三个不同插图的三个背景(一种称为“嵌套背景”的技术)来实现的。第一个的插图为 0(填充整行)并且使用默认背景颜色 ( -fx-background)。第二个的插图为 1(所以前一个背景的一个像素是可见的);它用查找的颜色填充一个矩形-fx-cell-focus-inner-border。第三个有 2 个插入(因此它使中间背景的一个像素可见)并且再次具有默认颜色。
默认行背景由
.table-row-cell {
-fx-background: -fx-control-inner-background;
-fx-background-color: -fx-table-cell-border-color, -fx-background;
-fx-background-insets: 0, 0 0 1 0;
-fx-padding: 0;
-fx-text-fill: -fx-text-background-color;
}
Run Code Online (Sandbox Code Playgroud)
这再次使用“嵌套背景”,第一个具有零插图和背景颜色-fx-table-cell-border-color,第二个具有默认背景和仅沿底部边缘的一个像素的插图。所以这里的效果是一个 1 像素宽的底部边框。
我上面使用的 CSS 只是将焦点行重新定义为非焦点行。
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |