开发者

How to represent Line Break or new line in silverlight textBox

I am h开发者_JAVA百科aving hard time to match Special characters set in Silverlight. I only on the following:

To represent a LineBreak in Silverlight TextBlock:

use : > lineBreak <

But What do I use to represent a New Line or LineBreak In Silverlight TextBox??

Example : I want this one line mag : This is line one. This is line two

into this :

This is line one. This is line two.

it seems this \r\n is not working. This is line one \r\n


The bottom line at the top

<TextBox Text="This is line one!&#13;This is line two!" />

Linebreak Weirdness in the Silverlight TextBox

If you are going to be initialising content of a TextBox with literal text in Xaml in a similiar way that you might a TextBlock then you need a reliable way to represent the line break character the Silverlight uses in Xaml.

Silveright uses a CR character (0x0D - ASCII 13) to represent a linebreak which in C# you include in a string literal as \r. However Xaml isn't C# so you can't use \r in Xaml.

Xaml is fundementally XML but with some Xaml parsing oddities. Just including a linebreak, as Derek has in his answer, directly in the Xaml will not work at runtime (although the designer displays it as expected). You might think that this because Xml uses the LF character (0x0A) as its linebreak character. However in code you can assign a string containing "\r" or "\n" to the Text property and the TextBox will show a new line. In fact you can assign the sequence "\r\n" and it will show a single new line (not two new lines).

Ultimately you can use the Xml character code entity to represent a \r in Xaml "&#13;" which survives the Xaml parsing process for reason which I cannot actually explain.


In XAML you can simply use the LineBreak:

<TextBlock Name="textBlock1" >line 1 <LineBreak /> line 2</TextBlock>


To add a line break to the Text property of a TextBox in XAML, use the ASCII character code for a linefeed as shown in the following example:

<TextBox x:Name="_test" Height="150" Text="This is line one.
This is line two." />

To add a line break to the Text property of a TextBox in code-behind, use the Environment.NewLine static value (which is the same as \r\n) as shown in the following code example:

this._test.Text = string.Format(
    "This is line one.{0}This is line two.",
    Environment.NewLine);


If you want to display a string with a carriage return in it, just use a string with a carriage return in it:

MyTextBlock.Text = @"line 1
line2";


Thank all.

It is working. For Silverlight TextBlock: use <lineBreak/> in the XAML of textBlock.

Thank to AnthonyWJones For Silverlight textBox, I use "\r" in the string which is used to display in TextBox.


For a line break in a Windows Phone Silverlight TextBlock use:

"This is line one!" & vbCrLf & "This is line two!"


<TextBox x:Name="textBox" AcceptsReturn="True" />
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜