好的,所以我几乎拥有一个漂亮的UI,使用TActionManager,TActionMainMenuBars和TToolBar(带有DrawingStyle)作为渐变来创建OfficeXP样式界面。

我也使用了几个TPopupActionBar弹出菜单,但是我没有看到ColorMap属性。我正在使用ColorMap属性更改默认XP样式颜色的颜色,并更改TToolBar的“热色”以匹配菜单。

现在,我需要TPopupActionBar弹出菜单来匹配菜单和工具栏,但是当我看不到为其分配ColorMap时,该怎么办?

打扰一下,如果这不是一件小事,我已经看过并且看不到。我也尝试在运行时分配ColorMap,但似乎没有它的属性?我可以更改TPopupActionBar的样式,但不能分配ColorMap。

最佳答案

要分配ColorMap,可以使用 OnGetControlClass 组件的 TPopupActionBar 事件,然后检查 PopupMenu 是否不为nil,最后分配该属性的嵌套属性ColorMap

检查此样本。

procedure TFormMain.PopupActionBar1GetControlClass(Sender: TCustomActionBar;
  AnItem: TActionClient; var ControlClass: TCustomActionControlClass);
begin
  if Assigned(PopupActionBar1.PopupMenu) then
    PopupActionBar1.PopupMenu.ColorMap:= TwilightColorMap1;
end;

检查此图像是否包含应用了TwilightColorMap的TPopupActionBar

10-05 22:15