Annoying RibbonBar Size Issue

7 posts, 0 answers
  1. UIdev
    UIdev avatar
    74 posts
    Member since:
    Mar 2007

    Posted 02 Jun 2007 Link to this post

    Hello,

    In my WinForms app, I am using a RibbonBar along with a custom resizing function.  Since I use a custom resizing solution, I have noticed a bug/issue with my RibbonBar.  The default RibbonBar height is 141, and I can seem to change that :S.  During runtime, I add a control to the RadRibbonBarChunk.  This control is of a certain size so that is causes the RibbonBar to grow in height.  Since I can't seem to edit the height of the RibbonBar at design time to make everything work, I have to find some way to adjust the location/size of the control below the RibbonBar that's getting affected, or find a way to force the RibbonBar's height to be greater than 141 at design time.

    Any help you can give me with this problem would be wonderful!

    --UIDev
  2. Ralf Ehlert
    Ralf Ehlert avatar
    3 posts
    Member since:
    Dec 2004

    Posted 03 Jun 2007 Link to this post

    If you don't need some spezial form style, you can set the ControlBox property of the Form to false and delete the texx of the Text property of the Form and you have a Form similar to the FormBorderStyle = None but with the standard nonclient area with it's resizing logic.

    I hope this helps.
  3. UI for WinForms is Visual Studio 2017 Ready
  4. UIdev
    UIdev avatar
    74 posts
    Member since:
    Mar 2007

    Posted 03 Jun 2007 Link to this post

    I already have a borderless ShapedForm... I guess what I need is some code that, upon the resizing of the ShapedForm, adjusts the location and size properties of pnlLarge (a Panel control beneath the RibbonBar) to the new size of the RibbonBar.  The adverse affect of this whole issue is covering the upper 20 or so pixels of content of the panel.  Hopefully someone good with logic can figure out a way to resize the panel according to the RibbonBar! :)  I know this is kind of a weird issue, but I really appreciate all the help you're giving me :).
  5. Jack
    Admin
    Jack avatar
    2335 posts

    Posted 04 Jun 2007 Link to this post

    Hi David,

    Yes, we have some sizing problems with RadRibbonBar. We will fix them in our next major version (Q2 2007).

    But there is a workaround you can use. You can resize the RibbonBar's size at design time by following these steps:

    1. Open the Element hierarchy editor 
    2. Choose the RootElement
    3. Set the MinSize.Height property to your desired height
    4. Set the MaxSize.Height property to your desired height
     
    Best wishes,
    Jack
    the Telerik team

    Instantly find answers to your questions at the new Telerik Support Center
  6. UIdev
    UIdev avatar
    74 posts
    Member since:
    Mar 2007

    Posted 04 Jun 2007 Link to this post

    That solution worked perfectly!  Thank you for your quick solution.
  7. Himanshu
    Himanshu avatar
    1 posts
    Member since:
    Jul 2011

    Posted 04 Jul 2011 Link to this post

    Hi,

    I am using RadRibbonBar and it is bugging me when I am dynamically adding RibbonBarGroups/Buttons into this, after shorten RadRibbonBar's width. It is working fine with default width of RadRibbonBar, but due to business scenario I need to shorten its width.
    The Problem I am facing is it hides the group name from ribbon and all RadButtons are occupying entire width of rad control.
    I am using Q1 2011 version of telerik winform controls.


    The code is written below to populate dynamic button over RibbonBar.

     private RadRibbonBarGroup radCreateMenuItems(IGrouping<string, PlugInHost> hostGroup, bool visiblisity, int Length)
            {
                RadRibbonBarGroup radMenuGroup = new RadRibbonBarGroup();
                radMenuGroup.AutoSize = false;
                radMenuGroup.FitToSizeMode = RadFitToSizeMode.FitToParentContent;
                //radMenuGroup.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize;
                radMenuGroup.Text = hostGroup.Key;
                radMenuGroup.Name = hostGroup.Key;
                radMenuGroup.AccessibleDescription = hostGroup.Key;
                radMenuGroup.AccessibleName = hostGroup.Key;
                radMenuGroup.Bounds = new System.Drawing.Rectangle(0, 0, 90, 58);
                if (Length == 1)
                {
                    RadButtonElement radHeaderButton = new RadButtonElement();
                    radHeaderButton = radCreateMenuItem(hostGroup.First());                
                    radMenuGroup.Tag = hostGroup.First();
                    radHeaderButton.TextImageRelation = TextImageRelation.ImageAboveText;
                    radHeaderButton.ImageAlignment = ContentAlignment.TopCenter;
                    radHeaderButton.TextAlignment = ContentAlignment.MiddleCenter;
                    radHeaderButton.Tag = hostGroup.First();
                    radMenuGroup.Margin = new System.Windows.Forms.Padding(0);
                    //radMenuGroup.Items.Add(radHeaderButton);
                    radHeaderButton.FitToSizeMode = RadFitToSizeMode.FitToParentBounds;
                    //radHeaderButton.AutoSize = true;
                    //radHeaderButton.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize;                
                    radMenuGroup.Items.AddRange(new Telerik.WinControls.RadItem[] {radHeaderButton});
                }
                else
                {                
                    radMenuGroup.Visibility = ElementVisibility.Visible;
                    ribbonTabPlugIns.Items.AddRange(new Telerik.WinControls.RadItem[] { radMenuGroup });
                    foreach (var item in hostGroup)
                    {
                        //radMenuGroup.Size = new System.Drawing.Size(100, 50);
                        RadButtonElement radHeaderButton = new RadButtonElement();
                        radHeaderButton.Text ="       " + item.ToString() + "       ";
                        radHeaderButton.ToolTipText = hostGroup.Key+ ":      " + item.ToString() + "       ";
                        radHeaderButton = radCreateMenuItem(item);
                        radHeaderButton.TextImageRelation = TextImageRelation.ImageAboveText;
                        radHeaderButton.ImageAlignment = ContentAlignment.TopCenter;
                        radHeaderButton.TextAlignment = ContentAlignment.MiddleCenter;
                        radHeaderButton.Tag = item;
                        //radHeaderButton.AutoSize = true;
                        //radHeaderButton.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize;
                        radHeaderButton.FitToSizeMode = RadFitToSizeMode.FitToParentBounds;
                        //radMenuGroup.Items.Add(radHeaderButton);
                        radMenuGroup.Bounds = new System.Drawing.Rectangle(0, 0, radMenuGroup.Size.Width + 70, 58);
                        radMenuGroup.Items.AddRange(new Telerik.WinControls.RadItem[] { radHeaderButton });
                        radHeaderButton.FitToSizeMode = RadFitToSizeMode.FitToParentBounds;
                    }
                }
                radMenuGroup.Visibility = ElementVisibility.Visible;
                //radMenuGroup.AutoSize = true;
                return radMenuGroup;
            }


  8. Peter
    Admin
    Peter avatar
    1148 posts

    Posted 06 Jul 2011 Link to this post

    Hi Himanshu,

    Thank you for the question and for the provided sample code.

    The nested RibbonBar elements do not support AutoSize set to False mode, they should always have AutoSize set to True, and if you want to set element sizes, you have to set MinimumSize and MaximumSize.

    So you should change your code accordingly:

    private RadRibbonBarGroup radCreateMenuItems(IGrouping<string, PlugInHost> hostGroup, bool visiblisity, int Length)
           {
               RadRibbonBarGroup radMenuGroup = new RadRibbonBarGroup();
               radMenuGroup.Text = hostGroup.Key;
               radMenuGroup.Name = hostGroup.Key;
               radMenuGroup.AccessibleDescription = hostGroup.Key;
               radMenuGroup.AccessibleName = hostGroup.Key;
               radMenuGroup.MinimumSize = new System.Drawing.SizeF(0, 0, 90, 58);
               if (Length == 1)
               {
                   RadButtonElement radHeaderButton = new RadButtonElement();
                   radHeaderButton = radCreateMenuItem(hostGroup.First());               
                   radMenuGroup.Tag = hostGroup.First();
                   radHeaderButton.TextImageRelation = TextImageRelation.ImageAboveText;
                   radHeaderButton.ImageAlignment = ContentAlignment.TopCenter;
                   radHeaderButton.TextAlignment = ContentAlignment.MiddleCenter;
                   radHeaderButton.Tag = hostGroup.First();
                   radMenuGroup.Margin = new System.Windows.Forms.Padding(0);
                   radMenuGroup.Items.Add(radHeaderButton);
               }
               else
               {               
                   radMenuGroup.Visibility = ElementVisibility.Visible;
                   ribbonTabPlugIns.Items.Add( radMenuGroup );
                   foreach (var item in hostGroup)
                   {
                       //radMenuGroup.Size = new System.Drawing.Size(100, 50);
                       RadButtonElement radHeaderButton = new RadButtonElement();
                       radHeaderButton.Text ="       " + item.ToString() + "       ";
                       radHeaderButton.ToolTipText = hostGroup.Key+ ":      " + item.ToString() + "       ";
                       radHeaderButton = radCreateMenuItem(item);
                       radHeaderButton.TextImageRelation = TextImageRelation.ImageAboveText;
                       radHeaderButton.ImageAlignment = ContentAlignment.TopCenter;
                       radHeaderButton.TextAlignment = ContentAlignment.MiddleCenter;
                       radHeaderButton.Tag = item;
                       //radHeaderButton.AutoSize = true;
                       //radHeaderButton.AutoSizeMode = RadAutoSizeMode.FitToAvailableSize;
                       //radMenuGroup.Items.Add(radHeaderButton);
                       radMenuGroup.MinimumSize = new System.Drawing.SizeF(0, 0, radMenuGroup.Size.Width + 70, 58);
                       radMenuGroup.Items.Add( radHeaderButton );
                   }
               }
               radMenuGroup.Visibility = ElementVisibility.Visible;
               //radMenuGroup.AutoSize = true;
               return radMenuGroup;
           }

    If you continue to experience the issue, please send a sample project where issue can be reproduced.

    All the best,
    Peter
    the Telerik team
    Registration for Q2 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting July 18th and book your seat for a walk through all the exciting stuff we ship with the new release!
Back to Top
UI for WinForms is Visual Studio 2017 Ready