我想在使用 SortHeaderLayer 时摆脱 nattable 标题中的“3D”样式。基本上我发现的所有示例都使用这种样式。
我找到了一个示例,其中 UI 对我来说看起来很完美 - _818_SortableAllFilterPerformanceColumnGroupExample。
但是这个例子有点复杂,我不完全理解平面外观是如何实现的 - 我猜它与 HoverLayer 有关。该示例有一个缺点:似乎设置附加排序列(使用 alt 键)不起作用。
无论哪种方式 - 我不想过多关注 _818_SortableAllFilterPerformanceColumnGroupExample。我只是将其作为我想要实现的平头样式的示例。有没有简单的方法可以实现这一目标?
我已经通过采用 DefaultColumnHeaderStyleConfiguration 取得了一些成功。 使用时
DefaultColumnHeaderStyleConfiguration config=new DefaultColumnHeaderStyleConfiguration();
config=new TextPainter(true, false, 1, true);
config.bgColor=//whatever BG color.
结果看起来很接近我想要的,但背景是白色的(可能是因为我省略了绘制它)。
将 TextPainter ctor 更改为时。
config=new TextPainter(true, true, 1, true);
背景颜色已绘制,但标题之间的边框消失。
在这两种情况下,单击标题时都会显示排序列的 3D 外观(始终使用 config.bgColor)。这真的很难看而且不一致。
最后评论:非常感谢这个出色的控制!
克里斯
好吧,我自己找到了它 - 看来我必须发帖才能走上正确的轨道;-)
// 1 Change default header config like this
DefaultColumnHeaderStyleConfiguration config=new DefaultColumnHeaderStyleConfiguration();
config=new TextPainter(true, true, 1, true);
config.bgColor=//whatever BG color
config.renderGridLines=true;
// 2 disable default configuration when constructing the SortHeaderLayer
ILayer layer=new SortHeaderLayer(columnHeaderLayer, sortModel, false);
// 3 add SingleClickConfig, but dont use the defaults painter
natTable.addConfiguration(new SingleClickSortConfiguration(new SortableHeaderTextPainter());
这对我有用。我希望这是正确的方法,如果不是简短的信息就好了。