【问题标题】:How to represent Line Break or new line in silverlight textBox如何在 silverlight textBox 中表示换行符或换行符
【发布时间】:2011-01-25 07:47:52
【问题描述】:

我很难匹配 Silverlight 中设置的特殊字符。我只对以下内容:

在 Silverlight TextBlock 中表示 LineBreak:

使用:>换行

但是我用什么来表示 Silverlight TextBox 中的换行符或换行符?

示例:我想要这一行 mag :这是第一行。这是第二行

进入这个:

这是第一行。 这是第二行。

这\r\n 似乎不起作用。这是第一行 \r\n

【问题讨论】:

    标签: silverlight xaml windows-phone-7 textblock


    【解决方案1】:

    顶部的底线

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

    Silverlight 文本框中的换行异常

    如果您要在 Xaml 中以与 TextBlock 类似的方式使用文字文本初始化 TextBox 的内容,那么您需要一种可靠的方式来表示 Silverlight 在 Xaml 中使用的换行符。

    Silveright 使用 CR 字符 (0x0D - ASCII 13) 来表示换行符,在 C# 中,您将其包含在字符串文字中作为 \r。但是 Xaml 不是 C#,因此您不能在 Xaml 中使用 \r。

    Xaml 本质上是 XML,但有一些 Xaml 解析异常。正如 Derek 在他的回答中所说,直接在 Xaml 中包含一个换行符在运行时将不起作用(尽管设计器按预期显示它)。您可能会认为这是因为 Xml 使用 LF 字符 (0x0A) 作为其换行符。但是在代码中,您可以将包含 "\r" 或 "\n" 的字符串分配给 Text 属性,并且 TextBox 将显示一个新行。事实上,您可以指定序列“\r\n”,它将显示一个新行(而不是两个新行)。

    最终,您可以使用 Xml 字符代码实体来表示 Xaml "&amp;#13;" 中的 \r,由于我无法解释的原因,它在 Xaml 解析过程中仍然存在。

    【讨论】:

    • +1 表示although the designer displays it as expected。让我意识到 Designer 可能不会使用 &amp;#13; 显示“换行符”,但在运行时 textblock 会;)
    • 在 WP8.1 中也能很好地工作!
    【解决方案2】:

    在 XAML 中,您可以简单地使用 LineBreak:

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

    【讨论】:

    • 海报询问的是文本框,而不是文本块。
    • 标题是关于“TextBox”的,但是如果你看他的帖子:“...在 Silverlight TextBlock 中表示 LineBreak:...”
    • @danbord:我认为你需要更仔细地阅读这个问题。
    • 确实,这不适用于TextBox,就像作者要求的那样,但这对我解决我的TextBlock换行需求很有帮助。 :-)
    【解决方案3】:

    要在 XAML 中为 TextBoxText 属性添加换行符,请使用 ASCII 字符代码作为换行符,如下例所示:

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

    要在代码隐藏中为TextBoxText 属性添加换行符,请使用Environment.NewLine 静态值(与\r\n 相同),如以下代码示例所示:

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

    【讨论】:

      【解决方案4】:

      如果要显示带有回车的字符串,只需使用带有回车的字符串即可:

      MyTextBlock.Text = @"line 1
      line2";
      

      【讨论】:

      • 这种方法的问题是它包含了序列 \r\n 来表示一个新行。这与 TextBox 使用简单的 \r 换行不一致,因此以后会让人头疼。例如,将所有 \r 简单替换为 \n 以使用其中 \n 是换行符的结果将导致某些换行符加倍(包含在初始内容中的换行符)。
      【解决方案5】:

      谢谢大家。

      它正在工作。 对于 Silverlight TextBlock:在 textBlockXAML 中使用 &lt;lineBreak/&gt;

      感谢 AnthonyWJones 对于 Silverlight textBox,我在用于在 TextBox 中显示的字符串中使用 "\r"

      【讨论】:

        【解决方案6】:

        对于 Windows Phone Silverlight TextBlock 中的换行符,请使用:

        “这是第一行!” & vbCrLf & "这是第二行!"

        【讨论】:

          【解决方案7】:
          <TextBox x:Name="textBox" AcceptsReturn="True" />
          

          【讨论】:

            猜你喜欢
            • 2010-09-22
            • 1970-01-01
            • 1970-01-01
            • 2010-11-21
            • 2011-02-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多