Pregunta ¿Cómo obtener el tamaño de la altura de la barra de título de un formulario de Winforms?


Entonces, si se trata de una ventana de herramientas o una forma minimizable, quiero poder obtener su altura mediante programación.

es posible? ¿Si es así, cómo?


32
2018-01-07 18:32


origen


Respuestas:


Puede determinar la altura de la barra de título tanto para la ventana de herramientas como para las formas normales usando:

Rectangle screenRectangle=RectangleToScreen(this.ClientRectangle);

int titleHeight = screenRectangle.Top - this.Top;

Donde 'esta' es tu forma.

ClientRectangle devuelve los límites del área de cliente de su formulario. RectangleToScreen convierte esto en coordenadas de pantalla que es el mismo sistema de coordenadas que la ubicación de la pantalla de formulario.


45
2018-01-07 18:36



Hay una arruga adicional en caso de que su formulario sea una vista en una aplicación MDI. En ese caso, RectangleToScreen (this.ClientRectangle) devuelve coordenadas relativas no al propio Formulario (como cabría esperar), sino con respecto a MainForm que aloja el control MDIClient que aloja el Formulario.

Puede dar cuenta de eso por

Point pnt = new Point(0, 0);
Point corner = this.PointToScreen(pnt); // upper left in MainFrame coordinates
Point origin = this.Parent.PointToScreen(pnt); // MDIClient upperleft in MainFrame coordinates
int titleBarHeight = corner.Y - origin.Y - this.Location.Y;

2
2018-04-26 22:48



Esto te dará el TitleBarsize:

form.ClientRectangle.Height - form.Height;

0
2017-12-07 12:56