G ++ + 'da C++ kullanıyorum. (Bu sorun da C# içinde mevcut olabilir).MeasureString(), soldaki ve sağdaki metni kaydırır
Grafik :: MeasureString() veya Graphics :: DrawString() işlevini her aradığımda, dize sol ve sağdaki boş alanla doldurulduğunu fark ediyorum.
Örneğin, bir Courier yazı tipi kullanıyorum (italik değil!) Ve "P" ölçtüğümde 90 tane aldım, ancak "PP" bana 150 verir. Tek boşluklu bir fontun tam genişliğini ikiye katlamasını beklerdim "PP" için.
Sorum şu: bu amaçlanan veya belgelenen davranış mıdır ve bunu nasıl devre dışı bırakırım?
RectF Rect(0,0,32767,32767);
RectF Bounds1, Bounds2;
graphics->MeasureString(L"PP", 1, font, Rect, &Bounds1);
graphics->MeasureString(L"PP", 2, font, Rect, &Bounds2);
margin = Bounds1.Width * 2 - Bounds2.Width;
TextRenderer sınıfı ile daha iyi sonuçlar elde ediyorum. – Bitterblue
TextRenderer, benzer bir durumda tam olarak ihtiyaç duyduğum şeydi – Rob
TextRenderer benim için çok daha iyi çalıştı – Migs