DropDown size on High DPI

4 posts, 0 answers
  1. Jeremy
    Jeremy avatar
    12 posts
    Member since:
    Dec 2013

    Posted 19 Dec 2018 Link to this post

    Hello.
    I have a problem with the size of DropDown on high DPI. Long story short - it completely ignore DefaultItemsCountInDropDown and MaxDropDownItems.

    Some DDL in our projects has fixed amount of items, and we set DefaultItemsCountInDropDown to fixed value, to avoid scrolls and empty space when possible.

    And it works fine on 100% DPI. But when I change DPI settings in the system the pop-up height is greater than it should be and have empty space if DDL has less then 6 items. And It will show scrollbar if it has more then 6 items.

    I believe that only DropDownHeight is used for scaling. By default, DefaultItemsCountInDropDown = 6 and DropDownHeight = 106, and on HDPI It looks like the program ignores DefaultItemsCountInDropDown and always uses DropDownHeight, which was automatically scaled for current dpi. To confirm my assumption, you can manually set DropDownHeight = 200 (for example) and the result will be the same on any DPI.

    Below I gave examples of my code and screenshots from different DPI. 
    100% https://clip2net.com/s/3YIB3Cn
    200% https://clip2net.com/s/3YIBamA

     

    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;
    using Telerik.WinControls;
    using Telerik.WinControls.UI;
     
    namespace PP.DesignExamples.BugsForTelerik
    {
        public class Form4 : RadForm
        {
            private RadDropDownList radDropDownList1;
            private RadDropDownList radDropDownList2;
     
            public Form4()
            {
                InitializeComponent();
            }
     
            private void InitializeComponent()
            {
                RadListDataItem radListDataItem1 = new RadListDataItem();
                RadListDataItem radListDataItem2 = new RadListDataItem();
                RadListDataItem radListDataItem3 = new RadListDataItem();
                RadListDataItem radListDataItem4 = new RadListDataItem();
                RadListDataItem radListDataItem5 = new RadListDataItem();
                RadListDataItem radListDataItem6 = new RadListDataItem();
                RadListDataItem radListDataItem7 = new RadListDataItem();
                RadListDataItem radListDataItem8 = new RadListDataItem();
                RadListDataItem radListDataItem9 = new RadListDataItem();
                RadListDataItem radListDataItem10 = new RadListDataItem();
                RadListDataItem radListDataItem11 = new RadListDataItem();
                RadListDataItem radListDataItem12 = new RadListDataItem();
                RadListDataItem radListDataItem13 = new RadListDataItem();
                radDropDownList1 = new RadDropDownList();
                radDropDownList2 = new RadDropDownList();
                ((ISupportInitialize)(radDropDownList1)).BeginInit();
                ((ISupportInitialize)(radDropDownList2)).BeginInit();
                ((ISupportInitialize)(this)).BeginInit();
                SuspendLayout();
                //
                // radDropDownList1
                //
                radDropDownList1.DefaultItemsCountInDropDown = 10;
                radDropDownList1.DropDownStyle = RadDropDownStyle.DropDownList;
                radListDataItem1.Text = "ListItem 1";
                radListDataItem2.Text = "ListItem 2";
                radListDataItem3.Text = "ListItem 3";
                radListDataItem4.Text = "ListItem 4";
                radListDataItem5.Text = "ListItem 5";
                radListDataItem6.Text = "ListItem 6";
                radListDataItem7.Text = "ListItem 7";
                radListDataItem8.Text = "ListItem 8";
                radListDataItem9.Text = "ListItem 9";
                radListDataItem10.Text = "ListItem 10";
                radDropDownList1.Items.Add(radListDataItem1);
                radDropDownList1.Items.Add(radListDataItem2);
                radDropDownList1.Items.Add(radListDataItem3);
                radDropDownList1.Items.Add(radListDataItem4);
                radDropDownList1.Items.Add(radListDataItem5);
                radDropDownList1.Items.Add(radListDataItem6);
                radDropDownList1.Items.Add(radListDataItem7);
                radDropDownList1.Items.Add(radListDataItem8);
                radDropDownList1.Items.Add(radListDataItem9);
                radDropDownList1.Items.Add(radListDataItem10);
                radDropDownList1.Location = new Point(12, 12);
                radDropDownList1.MaxDropDownItems = 10;
                radDropDownList1.Name = "radDropDownList1";
                radDropDownList1.Size = new Size(159, 20);
                radDropDownList1.TabIndex = 0;
                //
                // radDropDownList2
                //
                radDropDownList2.DefaultItemsCountInDropDown = 3;
                radDropDownList2.DropDownStyle = RadDropDownStyle.DropDownList;
                radListDataItem11.Text = "ListItem 1";
                radListDataItem12.Text = "ListItem 2";
                radListDataItem13.Text = "ListItem 3";
                radDropDownList2.Items.Add(radListDataItem11);
                radDropDownList2.Items.Add(radListDataItem12);
                radDropDownList2.Items.Add(radListDataItem13);
                radDropDownList2.Location = new Point(12, 42);
                radDropDownList2.MaxDropDownItems = 3;
                radDropDownList2.Name = "radDropDownList2";
                radDropDownList2.Size = new Size(159, 20);
                radDropDownList2.TabIndex = 0;
                //
                // Form4
                //
                AutoScaleDimensions = new SizeF(6F, 13F);
                AutoScaleMode = AutoScaleMode.Font;
                ClientSize = new Size(487, 77);
                Controls.Add(radDropDownList1);
                Controls.Add(radDropDownList2);
                Name = "Form4";
                //
                //
                //
                RootElement.ApplyShapeToControl = true;
                Text = "Form4";
                ((ISupportInitialize)(radDropDownList1)).EndInit();
                ((ISupportInitialize)(radDropDownList2)).EndInit();
                ((ISupportInitialize)(this)).EndInit();
                ResumeLayout(false);
                PerformLayout();
            }
        }
    }

    I use Telerik 2018.3.1016.20 with .Net 3.5 
    I very much rely on your help and advice.

  2. Dimitar
    Admin
    Dimitar avatar
    2738 posts

    Posted 21 Dec 2018 Link to this post

    Hi Jeremy,

    I was able to reproduce this issue and I have logged it on our Feedback Portal. You can track its progress, subscribe to status changes and add your comment to it here. I have also updated your Telerik Points.

    Unfortunately, I cannot suggest a workaround for the issue. We will do our best to fix this in the upcoming release (scheduled for the middle of January).

    Should you have any other questions do not hesitate to ask.

    Regards,
    Dimitar
    Progress Telerik
    Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
  3. Jeremy
    Jeremy avatar
    12 posts
    Member since:
    Dec 2013

    Posted 22 Dec 2018 Link to this post

    Hi, thanks for reply.

    Best regards.

     

    P.S. should I mark this question as answered? 

  4. Dess | Tech Support Engineer, Sr.
    Admin
    Dess | Tech Support Engineer, Sr.  avatar
    3276 posts

    Posted 25 Dec 2018 Link to this post

    Hello, Jeremy,     

    Feel free to close this thread If you don't need any further assistance on this case.

    Should you have further questions please let me know.

    Regards,
    Dess | Tech Support Engineer, Sr.
    Progress Telerik
    Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
Back to Top