2010-09-02 12 views
7

Tengo una etiqueta en Windows.Form. Establecí la propiedad AutoSize en la etiqueta en True y noté que cuando hago eso, se coloca el lado derecho con ~ 5px de fondo blanco. Tengo la propiedad de relleno establecida en [0, 0, 0, 0]. ¿Hay alguna manera de deshacerse de esto?Etiqueta C# AutoSize agrega relleno

Me gustaría obtener los límites de la etiqueta lo más cerca posible del texto dentro de la etiqueta.

Respuesta

11

No hay forma de que use solo margen y margen. Ese es el comportamiento predeterminado.

alt text

En lo anterior Window He configurado el Padding y Margin-[0,0,0,0]. Esos 5 píxeles todavía están allí.

Si establece FlatStyle = System y AutoSize = False se puede conseguir esto:

alt text

En lo anterior Window que no tienen esos 5 píxeles más.

+0

Desactivación AutoSize establecerá el tamaño de la etiqueta a una cantidad manual. Dado que el texto de la etiqueta cambiará, tendrá que cambiar su tamaño. La propiedad AutoSize hace eso por mí. Si hay una manera de simular esta propiedad, esa sería una respuesta aceptable también. – MarkP

+1

FlatStyle = Sistema, increíble, eso me estaba matando, gracias! +1 –

+0

¿Podría proporcionar el código que usó para obtener la segunda ventana? Sigo recibiendo la primera ventana .. – pteixeira

1

Ok, tan FlastStyle = Sistema; AutoSize = falso; y luego configurar una propiedad que calcular el ancho de esta manera:

public string LabelText 
{ 
    set 
    { 
     _label.Text = value; 
     using (Graphics g = CreateGraphics()) { 
      _label.Width = (int)g.MeasureString(_label.Text, _label.Font).Width; 
     } 
    } 

}

Cuestiones relacionadas