データベース内のいくつかのアイテムのプレースホルダー グラフィックを生成するように依頼されましたが、注意点が 1 つあります。テキストがグラフィック全体を埋めるように、フォント サイズを動的にする必要があります。
コードの最初の繰り返しは問題なく動作しますが、クライアントは、グラフィックを読みやすくするためにフォントを大きくしたいと考えています。テキストを生成する部分のスニペットを次に示します。
using (Graphics Graphic = Graphics.FromImage(Img))
{
// Add Some Padding
Width = Width - 20;
Height = Height - 20;
// Generate The Text
Font GraphicFont = new Font("Arial", 26, FontStyle.Bold);
RectangleF RectF = new RectangleF(10, 10, (float)Width, (float)Height);
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
sf.LineAlignment = StringAlignment.Near;
Graphic.DrawString(Title, GraphicFont, Brushes.Black, RectF, sf);
}
でテキストのオーバーフローを検出できるか、グラフィックに適用する前にRectangleF
サイズを検出できDrawString
ますか、またはグラフィックを埋めるためにテキストを取得するためにできる他の魔法はありますか?
テキストをワードラップし、フォントをすべての単語で同じサイズにしたいので、必ずしもグラフィックを完全に埋める必要はありません-これがすべて意味をなすことを願っています.