DevExpr dxLayoutControl not skinned

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #52278
    Support
    Keymaster

      You can add this type as 'Panel' and change used SkinSection:

      Code:
      procedure TForm8.sSkinProvider1SkinItemEx(Item: TComponent; var CanBeAdded: Boolean; SkinParams: PacSkinParams);
      begin
      if Item is TdxLayoutControl then
      SkinParams.SkinSection := 'TRANSPARENT';
      end;
      #52285
      HeDiBo
      Participant
        'Support' wrote:

        You can add this type as 'Panel' and change used SkinSection:

        Code:
        procedure TForm8.sSkinProvider1SkinItemEx(Item: TComponent; var CanBeAdded: Boolean; SkinParams: PacSkinParams);
        begin
        if Item is TdxLayoutControl then
        SkinParams.SkinSection := 'TRANSPARENT';
        end;

        I hope your suggestion is only for a temporary solution. It will not work at design time.

        A permanent solution may be found in overriding this function in cxLookAndFeelPainters:

        Code:
        function LayoutControlEmptyAreaColor: TColor; virtual;

        or overriding this one:

        Code:
        procedure DrawLayoutControlBackground(ACanvas: TcxCanvas; const R: TRect); virtual;

        I'm not sure which is best.

        Thanks!

        #52289
        HeDiBo
        Participant

          The solution happens to be much simpler:

          Add TdxLayoutControl to the ThirdParty components and set it as TPanel if you want a skinned layout control. Set dxLayoutControl1.ParentBackground to True if you want transparency.

          Sorry for all the fuss :blush:

          Problem solved :a3:

        Viewing 3 posts - 1 through 3 (of 3 total)
        • You must be logged in to reply to this topic.