xamlのTextBlockにユーザーが入力できる文字数を設定するにはどうすればよいですか?XAMLのTextBlockの最大chr長を設定する
私はモデルでそれを行うか、それを処理するためのカスタム属性を作成しますか?
xamlのTextBlockにユーザーが入力できる文字数を設定するにはどうすればよいですか?XAMLのTextBlockの最大chr長を設定する
私はモデルでそれを行うか、それを処理するためのカスタム属性を作成しますか?
TextBlockにはMaxLengthはありません.Labelもありません。 TextBoxは行います。 TextBlockを変更しない限り、ユーザーはTextBlockに入力できません。
本当にTextBlockを制限したいのですか、それともTextBoxですか? TextBoxの場合は、単にMaxLengthプロパティを使用できます。
<TextBox Name="textBox1" MaxLength="5" />
それは本当にあなたが使用し、何とかそれに入力されたデータにユーザーを許可しているのTextBlockの場合は、テキストボックスを使用するようにスイッチ。それが後にあるTextBlockスタイルの場合、TextBoxをTextBlockのようにスタイルすることができます。
カスタムコントロールを作成せずに、いくつかのオプションがあります。
TextBlock
は、予想されるテキストに正確に合うようにサイズ調整しようとする可能性がありますが、さまざまな入力や異なるフォントサイズを考慮していないとすばやく醜いです。
代わりに、TextBlock.Text
プロパティに割り当てる文字列の文字長を確認し、必要に応じて制限することができます。
string s = "new text";
if (s.Length > maxLen)
textBlock1.Text = s.Substring(0, maxLen);
else
textBlock1.Text = s;
別のオプションは、TextWrapping
とTextTrimming
プロパティを使用することです。行の折り返しを追加するには、TextBlock
xamlに次の属性を追加し、TextBlock
のサイズを超えるテキストが存在することを示す「...」を追加することができます。
<TextBlock ... TextWrapping="Wrap" TextTrimming="CharacterEllipsis" />
Textblockの 'TextTrimming'プロパティを使用できます。 TextTrimming = "CharacterEllipsis"を設定します。実際に表示する文字数を管理するには、幅を使用する必要があります。
<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding Subject}"/>
のどちらかに設定MaxHeightの= "SomeHeight" と
<TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0"
MaxLength="100"
のMaxLengthを設定することにより、
または使用のTextBox のようなのTextBlockでオーバーフローをトリムが機能していません。ユーザーは5より多くの文字を入力できます。 – user1624552
TextBlockではなく、Styled TextBoxを使用していますか? – Rhyous