En WinForms
Estoy usando a Label
para mostrar diferentes mensajes como éxito, fracaso, etc.
Me gustaría centrar esa etiqueta en el formulario central. Quiero una solución que lo mantenga centrado, ya sea que haya una sola palabra o una oración completa en la etiqueta.
Control.Dock
propiedad ( msdn.microsoft.com/en-us/library/… ), puede acoplar (pegar) un control a un cierto lado del contenedor. Por ejemploLeft
,Top
,Right
oBottom
.Fill
le dice al control que tome todo el espacio disponible en el contenedor.Dock
entorno.Dock
La configuración era innecesaria. Cambiar laAutoSize
propiedad le da a la etiqueta un cuadro delimitador que puede ajustar manualmente el tamaño.Algunos contenidos adicionales menores para configurar mediante programación:
La alineación de Dockstyle y Content puede diferir de sus necesidades. Por ejemplo, para una etiqueta simple en un formulario wpf, uso DockStyle.None.
fuente
Lo logrará estableciendo la propiedad Anchor: None.
fuente
Si no desea acoplar la etiqueta en toda el área disponible, simplemente configure el evento SizeChanged en lugar de TextChanged. Cambiar cada letra cambiará la propiedad de ancho de la etiqueta, así como su texto cuando la propiedad de tamaño automático esté establecida en Verdadero. Entonces, por cierto, puede usar cualquier fórmula para mantener la etiqueta centrada en la forma.
fuente
La respuesta aceptada no funcionó para mí por dos razones:
BackColor
configuréAutoSize = false
yDock = Fill
hace que el color de fondo llene todo el formularioAutoSize
todos modos, no podría haber establecido en falso porque el texto de mi etiqueta era dinámicoEn cambio, simplemente usé el ancho del formulario y el ancho de la etiqueta para calcular el desplazamiento izquierdo:
fuente
Quería hacer algo similar, pero en un formulario con una imagen de fondo, descubrí que cuando el texto en la etiqueta cambiaba, los repintes eran obvios con este método, así que hice lo siguiente: * Establecer la etiqueta AutoSize en true y TextAlign en MiddleCenter
Luego, cada vez que el texto cambiaba (el mío se hacía usando un temporizador) llamé al siguiente método:
Y establezca la propiedad Ubicación de la etiqueta en este valor de retorno. Esto aseguró que la etiqueta siempre estaba en el centro del formulario cuando el texto cambiaba y los repintes para un formulario de pantalla completa no eran obvios.
fuente
Puede probar el siguiente fragmento de código:
Es realmente centro
fuente