2010-09-02 6 views
7

Windows'ta bir Etiketim var. Etikette AutoSize özelliğini true olarak ayarladım ve bunu yaptığımda, sağ tarafın ~ 5px beyaz arka plana sahip olduğunu fark ettim. Padding özelliği [0, 0, 0, 0] olarak ayarlanmış. Bundan kurtulmanın bir yolu var mı?C# label AutoSize, dolgu ekler

Etiketin içindeki metne mümkün olduğunca etiketin sınırlarını yaklaştırmak istiyorum.

cevap

11

Yalnızca dolgu ve kenar boşluğu kullandığınızda hiçbir yolu yoktur. Bu varsayılan davranış.

alt text

Yukarıdaki Window ben [0,0,0,0] için Padding ve Margin kurdum. Bu 5 piksel hala var.

Bunu alabilirsiniz AutoSize = FalseFlatStyle = System kurmak ve varsa: Yukarıdaki Window yılında

alt text

artık o 5 piksel yok.

+0

manuel miktara etiket boyutunu ayarlamak olacak autoSize kapatılması: ve sonra böyle genişliğini hesaplar bir mülk oluşturun. Etiketdeki metin değişeceğinden, yeniden boyutlandırılması gerekecektir. AutoSize özelliği bunu benim için yapar. Bu özelliği taklit etmenin bir yolu varsa, bu da kabul edilebilir bir cevap olur. – MarkP

+1

FlatStyle = Sistem harika, beni öldürüyor, teşekkürler! +1 –

+0

İkinci pencereyi almak için kullandığınız kodu verebilir misiniz? İlk pencereyi almaya devam ediyorum .. – pteixeira

1

Tamam, bu yüzden FlastStyle = Sistem; AutoSize = false;

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

}