DevExpress의 SkinEditor를 통해 Navbar의 스킨옵션들을 수정하였으나,
실제 디자인타임에선 제대로 적용되지 않아 별도 커스텀 스타일로 만들었습니다.
unit dxDevelopistSkinsNavBarPainter;
interface
uses
Vcl.Graphics
, dxNavBar
, dxNavBarSkinBasedViews
, dxSkinsdxNavBarAccordionViewPainter
;
const
dxDevelopistNavBarAccordionView = 9999; //고유ID
type
TdxDevelopistNavBarAccordionViewInfo = class(TdxNavBarAccordionViewInfo)
protected
function GetGroupCaptionTextIndent: Integer; override;
end;
TdxDevelopistNavBarAccordionLinkViewInfo = class(TdxNavBarAccordionLinkViewInfo)
public
function Font: TFont; override;
end;
TdxDevelopistNavBarAccordionGroupViewInfo = class(TdxNavBarAccordionGroupViewInfo)
public
function CaptionFont: TFont; override;
end;
TdxDevelopistNavBarAccordionViewPainter = class(TdxNavBarAccordionViewPainter)
protected
class function GetViewInfoClass: TdxNavBarViewInfoClass; override;
class function GetLinkViewInfoClass: TdxNavBarLinkViewInfoClass; override;
class function GetGroupViewInfoClass: TdxNavBarGroupViewInfoClass; override;
end;
implementation
uses
dxNavBarViewsFact
, dxNavBarStyles
;
{ TdxDevelopistNavBarAccordionViewPainter }
class function TdxDevelopistNavBarAccordionViewPainter.GetViewInfoClass: TdxNavBarViewInfoClass;
begin
Result := TdxDevelopistNavBarAccordionViewInfo;
end;
class function TdxDevelopistNavBarAccordionViewPainter.GetLinkViewInfoClass: TdxNavBarLinkViewInfoClass;
begin
Result := TdxDevelopistNavBarAccordionLinkViewInfo;
end;
class function TdxDevelopistNavBarAccordionViewPainter.GetGroupViewInfoClass: TdxNavBarGroupViewInfoClass;
begin
Result := TdxDevelopistNavBarAccordionGroupViewInfo;
end;
{ TdxDevelopistNavBarAccordionViewInfo }
function TdxDevelopistNavBarAccordionViewInfo.GetGroupCaptionTextIndent: Integer;
begin
Result := ScaleFactor.Apply(15); // TextIndent Value
end;
{ TdxDevelopistNavBarAccordionLinkViewInfo }
function TdxDevelopistNavBarAccordionLinkViewInfo.Font: TFont;
begin
Result := FCaptionFont;
Result.Name := 'MyFontName';
Result.Size := ScaleFactor.Apply(10);
end;
{ TdxDevelopistNavBarAccordionGroupViewInfo }
function TdxDevelopistNavBarAccordionGroupViewInfo.CaptionFont: TFont;
begin
Result := FCaptionFont;
Result.Name := 'MyFontName';
Result.Size := ScaleFactor.Apply(10);
end;
initialization
dxNavBarViewsFactory.RegisterView(dxDevelopistNavBarAccordionView, 'Developist-AccordionView', TdxDevelopistNavBarAccordionViewPainter);
finalization
UnRegisterView(dxDevelopistNavBarAccordionView);
end.
반응형