2010-05-10 9 views
2

У меня есть панель управления. Дополнительные элементы управления находятся в панели. Я установил свойство dock для панели как «заполнить». Панель изменяется в зависимости от разрешения экрана. но элементы управления остаются такими же. Элементы управления на панели не изменяются в зависимости от разрешения экрана.Управление размерами на основе разрешения экрана

У меня есть еще ярлыки и панели и текстовые поля и кнопка на той же странице.

Как установить свойство док-станции для изменения размера всех элементов управления на странице на основе разрешения экрана?

Спасибо за любую помощь

+1

Dock и Anchor свойства для «макета» только. Свойства AutoScaleMode и AutoScaleDimensions предназначены для изменений «разрешения экрана». – AMissico

ответ

1

Используйте Anchor свойство и закрепить управление всеми 4-х сторон.

0

В дополнение к настройке свойства Dock панели контейнера вам также необходимо установить свойства Якоря или Док-станции элементов управления на панели. Обычно добавление TableLayoutPanel, FlowLayoutPanel или даже другой панели поможет, когда у вас есть несколько элементов управления в форме.

1

Я надеюсь, что это решение (нарисованный от here) поможет отобразить все элементы управления в форме, когда изменяется разрешение экрана на стороне клиента:

int i_StandardHeight = 768;//Developer Desktop Height Where the Form is Designed 
       int i_StandardWidth = 1024; ;//Developer Desktop Width Where the Form is Designed 
       int i_PresentHeight = Screen.PrimaryScreen.Bounds.Height; 
       int i_PresentWidth = Screen.PrimaryScreen.Bounds.Width; 
       float f_HeightRatio = new float(); 
       float f_WidthRatio = new float(); 
       f_HeightRatio = (float)((float)i_PresentHeight/(float)i_StandardHeight); 
       f_WidthRatio = (float)((float)i_PresentWidth/(float)i_StandardWidth); 
       foreach (Control c in this.Controls) 
       { 
        if (c.GetType().ToString() == "System.Windows.Forms.Button") 
        { 
         Button obtn = (Button)c; 
         obtn.TextAlign = ContentAlignment.MiddleCenter; 
        } 
        if (c.HasChildren) 
        { 
         foreach (Control cChildren in c.Controls) 
         { 
          cChildren.SetBounds(Convert.ToInt32(cChildren.Bounds.X * f_WidthRatio), Convert.ToInt32(cChildren.Bounds.Y * f_WidthRatio), Convert.ToInt32(cChildren.Bounds.Width * f_WidthRatio), Convert.ToInt32(cChildren.Bounds.Height * f_HeightRatio)); 
          //cChildren.Font = new Font(cChildren.Font.FontFamily, cChildren.Font.Size * f_HeightRatio, cChildren.Font.Style, cChildren.Font.Unit, ((byte)(0))); 
         } 
         c.SetBounds(Convert.ToInt32(c.Bounds.X * f_WidthRatio), Convert.ToInt32(c.Bounds.Y * f_WidthRatio), Convert.ToInt32(c.Bounds.Width * f_WidthRatio), Convert.ToInt32(c.Bounds.Height * f_HeightRatio)); 
         // c.Font = new Font(c.Font.FontFamily, c.Font.Size * f_HeightRatio, c.Font.Style, c.Font.Unit, ((byte)(0))); 
        } 
        else 
        { 
         c.SetBounds(Convert.ToInt32(c.Bounds.X * f_WidthRatio), Convert.ToInt32(c.Bounds.Y * f_WidthRatio), Convert.ToInt32(c.Bounds.Width * f_WidthRatio), Convert.ToInt32(c.Bounds.Height * f_HeightRatio)); 
         // c.Font = new Font(c.Font.FontFamily, c.Font.Size * f_HeightRatio, c.Font.Style, c.Font.Unit, ((byte)(0))); 
        } 
       } 
       this.Height = Convert.ToInt32(i_StandardHeight * f_HeightRatio); 
       this.Width = Convert.ToInt32(i_StandardWidth * f_WidthRatio); 
+0

thankx его работа – 2013-02-18 10:07:50

Смежные вопросы