请看下面的图片:
我需要在TTabItem上修改蓝条的颜色。但我没有找到任何可以修改的地方。 哪些属性或样式可以修改它?
答案 0 :(得分:0)
更改tabitems的外观,您可以设计自定义样式。使用TStyleBook组件或将样式加载到StyleBook并在布局树上修改tabitemstyle。
您可以观看此电影,了解如何管理样式属性。
答案 1 :(得分:0)
Sylwester Wojnar的答案是正确的,适用于桌面应用程序,但在移动设备上,这变得更复杂(至少在XE5上,不确定XE6是否已修复)。
当然,您可以(并且必须)使用TStyleBook
和StyleLookup
属性来设置控件的样式,但是您无法轻松复制控件的默认样式,因为移动设备设计器没有{ {1}}菜单选项,因此您必须完全重新创建样式。幸运的是有一个解决方法。首先切换到您想要编辑样式的任何平台(Android,iOS 6/7),然后在文本模式下打开Edit custom style
(Alt + F12),再次将dfm
设置为设计模式,然后“我会看到你仍处于移动风格,但使用经典设计师,然后右键单击所需的控件并选择DesignerMobile = False
。
如果您计划在多个平台上运行您的应用,您可以在表单中添加多个Edit custom/default style
并为每个平台重复此操作,以便为您需要的所有平台获取不同且正确的样式,然后您需要在形式建设:
TStyleBooks
更新:这仅适用于Delphi XE5并在XE6中“修复”。
更新2: 还有另一种解决方案可能也适用于XE6。
首先,您需要获取默认平台样式,iOS样式应保存在Delphi安装的procedure TForm1.AfterConstruction;
begin
inherited;
{$IF Defined(MSWINDOWS)}
StyleBook := StyleBookWindows;
{$ELSEIF Defined(MACOS) AND NOT Defined(IOS)}
// MAC OS shares the same as Windows both default styles appear to be the same
StyleBook := StyleBookWindows;
{$ELSEIF Defined(ANDROID)}
StyleBook := StyleBookAndoird;
{$ELSEIF Defined(IOS)}
if (TOSVersion.Check(7)) then
StyleBook := StyleBookIOS7
else
StyleBook := StyleBookIOS6;
{$ENDIF}
end;
下。如何提取Android样式阅读http://delphihaven.wordpress.com/2013/12/31/inspecting-platform-styles-redux/。
然后将bin\ios
添加到您的表单,双击它并单击TStyleBook
(不加载,因为这将无法加载),单击Add
并再次重新打开该样式(以确保它在IDE中正确地重新创建。现在点击Apply and close
并将其保存在您喜欢的任何位置。这将把它保存在文本中,以便您可以手动编辑它。查找Save...
并删除所有其他样式,使其如下所示:
tabitemstyle
现在再次编辑样式簿并单击object TStyleContainer
object TLayout
StyleName = 'tabitemstyle'
DesignVisible = False
...
end
end
重新打开样式簿,然后单击Clear All
并选择刚编辑的样式。再次重新打开样式书,现在应该加载样式,重命名它以便Delphi不会将它用于所有Add
。使用您刚输入的名称选择控件中的样式,并确保在表单中选择样式簿。
编辑样式:
TTabItems
的默认样式使用图像绘制底部蓝色条。修改图像非常困难,因为它是一个多分辨率图像,更简单的方法是在样式中添加一个矩形。因此,在样式位置的TTabItem
部分下方添加一个矩形到底部,经过一些摆弄位置和大小后,您应该得到所需的结果。