2012-03-20 14 views

Respuesta

9

TextBlock no tiene un MaxLength, tampoco Label. TextBox lo hace. Los usuarios no pueden ingresar en un TextBlock a menos que lo hayas modificado.

¿Es realmente un TextBlock que desea limitar o quiso decir un TextBox? Si se trata de un TextBox, simplemente puede usar la propiedad MaxLength.

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

Si realmente es un TextBlock está utilizando y de alguna manera lo que permite al usuario introducir datos en ella, y luego cambiar a utilizar un cuadro de texto. Si es el estilo de TextBlock que buscas, puedes diseñar el TextBox para que parezca un TextBlock.

+0

MaxLength no está funcionando. el usuario puede escribir más caracteres que 5. – user1624552

+0

¿Está seguro de que tiene un TextBox con estilo y no un TextBlock? – Rhyous

7

Sin crear un control personalizado, tiene algunas opciones.

Puede intentar ajustar el tamaño del TextBlock para que se ajuste exactamente a su texto esperado, pero eso se pone feo rápidamente al tratar de explicar la entrada variable o los diferentes tamaños de fuente.

En su lugar, puede verificar la longitud del carácter de la cadena que se asignará a la propiedad TextBlock.Text y limitarla si es necesario.

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

Otra opción es utilizar los TextWrapping y TextTrimming propiedades. Los siguientes atributos se pueden agregar a su TextBlock xaml para agregar el ajuste de línea y "..." para indicar que el texto existe más allá del tamaño TextBlock.

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

Puede usar la propiedad 'TextTrimming' de un Textblock. Establecer TextTrimming = "CharacterEllipsis". Es posible que necesite jugar con Ancho para administrar la cantidad de caracteres que realmente desea mostrar.

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

alguno de los conjuntos MaxHeight = "SomeHeight" y recortar el desbordamiento con

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

o uso TextBox como Textblock estableciendo

<TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" 
MaxLength="100"