<TextBox Height="?" Width="?" AcceptReturn="true" />
高さ=ランダム。 幅=ランダム; 例えば、高さが60で、幅が少ないのTextBoxwpf、TextBoxのMaxLengthを制限する方法は?
<TextBox Height="?" Width="?" AcceptReturn="true" />
高さ=ランダム。 幅=ランダム; 例えば、高さが60で、幅が少ないのTextBoxwpf、TextBoxのMaxLengthを制限する方法は?
のサイズよりもテキストのinputed lentghを制御する方法100 で使用MaxLength
EDIT:
待って、何?文字数をTextBoxの幅に制限しますか?どうして?
EDIT2:
あなたはGraphics.MeasureStringを使って、文字列の長さを測定することができます。ここで何をしたいん拡張メソッドがあります:あなたのTexBoxが複数行であり、あなたはまた、高さを取りたい場合は
:
myTextBox.MaxLength = myTextBox.VisibleCharCount();
がEDIT3:
public static class TextBoxExtension
{
public static int VisibleCharCount(this textBox textBox)
{
int count = 0;
do {
count++;
var testString = new string('X', count);
var stringWidth = System.Drawing.Graphics.MeasureString(testString, textBox.Font);
} while (stringWidth < textBox.Width);
if (stringWidth == textBox.Width)
return count;
else
return count-1;
}
}
はこのようにそれを使用しますあなたはSizeを取るMeasureStringのオーバーロードを使用することができます。私はそれに応じて私の例を変更するためにそれを残す。
MaxLengthプロパティはTextBox
で使用してください。初期化後は非常に静的である可能性があります。
OR
あなたはPreviewTextInput
イベントでテキスト入力を取り消すことができます。
textbox.PreviewTextInput += textbox_PreviewTextInput;
void textbox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
TextBox box = (TextBox) sender;
e.Handled = box.Text.Length > 5;
}
テキストボックスを描画することができますreport.userのテンプレートであるフォーム、WPFない – Arcturus
です。印刷の問題を回避することを制限しています。 – doull
@Arcturus:リンクを修正しました。このプロパティは、WPF TextBoxにも存在します。 – VVS