Tengo una aplicación que se utilizará en un sistema de pantalla táctil, y contiene una serie de botones que son bastante grandes (~ 100 píxeles cuadrados).Reducir el relleno alrededor del texto en el botón WinForms
Cada botón tendrá entre 1 y 4 líneas de texto (normalmente una palabra por línea).
Debido a la gran cantidad de relleno en el botón, tengo que reducir el tamaño del texto para que sea casi ilegible, sin embargo, si pude reducir el relleno interno para que el texto se pintara correctamente hasta la frontera, entonces no tendría un problema.
He intentado reducir el relleno del control a cero de la siguiente manera, pero no ayuda.
this.Text = _label;
this.Font = new Font(this.Font.FontFamily, (float) _size);
this.Padding = new Padding(0);
Un ejemplo del problema se muestra a continuación:
Como se puede ver, hay mucho espacio para la palabra 'Visión general' para encajar en una línea, pero ¿cómo puedo lograr esto sin reducir el tamaño de la fuente? No me gusta la idea de tener que volver a escribir el código de texto de la pintura del control.
Editar: He notado que aumentar el relleno a varios valores de hasta 300, no hace ninguna diferencia en el relleno interno del control. También para información, el botón que estoy usando es un control que he heredado de la clase Windows.Forms.Button, ya que necesito agregar algunas propiedades, sin embargo, no he interferido con ninguno de los métodos del botón.
Ese sería mi método preferido, sin embargo no es tan simple, ya que el evento de pintura existente se ocupará de la envoltura y el posicionamiento del texto dentro de los límites , de ahí la razón por la que no estoy interesado en seguir por este camino, a menos, por supuesto, que haya algún método fácil para lograrlo. – Bryan
Aceptado, ya que Graphics.DrawString facilita el trabajo de ajuste y colocación del texto. Funciona perfectamente, muchas gracias. – Bryan
Genial, más simple que mi sugerencia y parece que funciona. +1 – Jodrell