2

特定の文字数 (ほとんどの場合 12 または 14 など) のみを含むことが許可されているテキスト ボックスがいくつかあります。

単語に応じて、テキスト ボックスの幅を 12 文字または 14 文字に動的に変更することはできますか?

4

2 に答える 2

0

TextRenderer.MeasureTextメソッドは常にあります。

フォームDLLを使用してもかまわない限り。

または、グラフィックライブラリヘルパーメソッドGraphics.MeasureString

次に、この情報を使用してあらゆる種類のサイズ設定を行うことができます。MSDNエントリの例を確認してください。

于 2012-08-28T08:47:59.130 に答える
0

あなたの質問を正しく理解しているかどうかはよくわかりませんが、特定の文字列に対して、以下のサンプル メソッドのように、TextBox のプロパティTextとプロパティを同時に設定できます。Width

指定されたテキストと TextBox のすべてのフォント関連プロパティからFormattedTextオブジェクトを作成します。次に、空の文字列を TextBox に割り当てて、「空の」幅を取得します(これは、左右のパディング、左右の境界線の太さなどを追加することでも可能です)。最後に、このメソッドはTextプロパティを割り当てWidth、空の幅に FormattedText の幅を加えた値を設定します。

public void SetTextAndWidth(TextBox textBox, string text)
{
    Typeface typeface = new Typeface(
        textBox.FontFamily, textBox.FontStyle, textBox.FontWeight, textBox.FontStretch);

    FormattedText formattedText = new FormattedText(text, CultureInfo.InvariantCulture,
        FlowDirection.LeftToRight, typeface, textBox.FontSize, Brushes.Black);

    if (textBox.HorizontalAlignment == HorizontalAlignment.Stretch)
    {
        textBox.HorizontalAlignment = HorizontalAlignment.Left;
    }

    textBox.Text = "";
    double emptyWidth = textBox.ActualWidth;

    textBox.Text = text;
    textBox.Width = formattedText.Width + emptyWidth;
}
于 2012-08-27T09:51:10.170 に答える