C# Winforms | Толщина границы формы
Есть ли документация о том, насколько толстая граница правильной формы?
Цель:
Я создал userControl с шириной 800 пикселей. Я хочу поднять всплывающее окно (обычную форму в целом) с новым экземпляром в полном разрешении (800 пикселей - все видно).
Моя проблема: настройка формы Form.Size.Width = 800
не буду делать это Похоже, что граница формы включена в свойство width формы. Мне нужно вычесть эту границу.
Я должен быть что-то вроде: 2px + 800px + 2px
Если вы хотите увидеть какой-нибудь код, скажите мне, но я думаю, что здесь нет необходимости.
РЕДАКТИРОВАТЬ:
После всплывающего элемента управления:
Код для всплывающего окна:
private void buttonPopup_Click(object sender, EventArgs e)
{
Form MyPopup = new Form();
customControl MyUserControl = new customControl();
MyUserControl.Dock = DockStyle.Fill;
Rectangle rc = MyUserControl.RectangleToScreen(MyUserControl.ClientRectangle);
//int thickness = SystemInformation.Border3DSize.Width;
//MyPopup.MaximumSize = new Size(MyUserControl.Size.Width + (thickness*2), 1500);
MyPopup.Controls.Add(MyUserControl);
MyPopup.MaximumSize = new Size(rc.Width, rc.Height);
MyPopup.Show();
}
Я имею в виду, твой код выглядит логичным для меня. Но результат все тот же. userControl
отображается чуть меньше. Я знаю, что использовал dock = fill
где моя кнопка не размещена профессионально внутри макета. Но от этого должно быть решение, чтобы просто установить правильный размер.
1 ответ
Кажется, что вы ищете
int thickness = SystemInformation.Border3DSize;
другая (и, INHO, лучшая) возможность заключается в использовании ClientRectangle
контроля. Например:
// Client rectangle in screen coordinates
Rectangle rc = MyControl.RectangleToScreen(MyControl.ClientRectangle);
// Let's align context menu (its width) to bottom of the control
MyContextMenuStrip.AutoSize = false;
// Depending on actual dropdown control you may want align either via
// Width = rc.Width;
// Or
// ClientSize = new Size(rc.Width, someHeight);
MyContextMenuStrip.Width = rc.Width;
// Let's show context menu at the bottom of the control
MyContextMenuStrip.Show(new Point(rc.Left, rc.Bottom));