2012-03-20 12 views

Odpowiedz

9

TextBlock nie ma wartości MaxLength ani etykiety. TextBox ma. Użytkownicy nie mogą wprowadzać danych do TextBlock, chyba że je zmodyfikowałeś.

Czy to naprawdę TextBlock, który chcesz ograniczyć lub miałeś na myśli TextBox? Jeśli jest to TextBox, możesz po prostu użyć właściwości MaxLength.

<TextBox Name="textBox1" MaxLength="5" /> 

Jeśli to naprawdę jest TextBlock używasz i jakoś pozwalając użytkownikowi na wprowadzanie danych do niego, a następnie przełączyć w użyciu TextBox. Jeśli jest to styl TextBlock, na którym się znajdujesz, możesz ustawić TextBox tak, aby wyglądał jak blok TextBlock.

+0

MaxLength nie działa. użytkownik może wpisać więcej znaków niż 5. – user1624552

+0

Czy na pewno masz stylizowany TextBox, a nie TextBlock? – Rhyous

7

Bez tworzenia niestandardowego sterowania masz kilka opcji.

Możesz spróbować dopasować rozmiar oczekiwanego tekstu dokładnie tak, ale robi się to brzydko, starając się uwzględnić zmienne dane wejściowe lub różne rozmiary czcionek.

Zamiast tego można sprawdzić długość znaków ciągu, który ma zostać przypisany do właściwości TextBlock.Text i ograniczyć ją, jeśli to konieczne.

string s = "new text"; 
if (s.Length > maxLen) 
    textBlock1.Text = s.Substring(0, maxLen); 
else 
    textBlock1.Text = s; 

Inną opcją jest użycie TextWrapping i TextTrimming właściwości. Do twojego TextBlock xaml można dodać następujące atrybuty, aby dodać zawijanie wierszy i "...", aby zaznaczyć, że tekst istnieje poza rozmiarem TextBlock.

<TextBlock ... TextWrapping="Wrap" TextTrimming="CharacterEllipsis" /> 
2

Można użyć właściwości "TextTrimming" bloku tekstu. Ustaw TextTrimming = "CharacterEllipsis". Być może trzeba grać z Szerokość, aby zarządzać liczbą znaków, które naprawdę chcesz wyświetlić.

<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding Subject}"/> 
0

albo ustawić maxheight = "SomeHeight" i przyciąć przepełnienie z

<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding LongText}" 

lub użyć TextBox jak textblock ustawiając

<TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" 
MaxLength="100" 
Powiązane problemy