代码之家  ›  专栏  ›  技术社区  ›  Natrium

WPF标签中的换行符?

  •  80
  • Natrium  · 技术社区  · 16 年前

    如何在WPF中的标签文本中添加换行符,如以下内容?

    <Label>Lorem 
      ipsum</Label>
    
    4 回复  |  直到 6 年前
        1
  •  112
  •   Robert Harvey    6 年前
    <Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
    

    您需要使用textBlock,因为textBlock接受内联对象的集合作为子集合。因此,您将为textBlock元素提供三个内联项:run text=“lorem”、linebreak和run text=“ipsum”。

    不能执行以下操作:

    <Label>Lorem<LineBreak/>ipsum</Label>`
    

    因为标签接受一个内容子元素。

    另外,不确定您的用例是什么,但是注意我在label元素中放置了一个textBlock。它是重复的吗?不是真的,取决于你的需要。下面是一篇关于这两个元素之间差异的好文章: Difference between Label and TextBlock

        2
  •  86
  •   00jt    9 年前

    在WPF中,可以使用值 "&#10;" "&#xA;"

    例如:

    <Label Content="Lorem&#10;ipsum" />
    

    (“10”是换行符的ASCII码)

    <Label Content="Lorem&#xA;ipsum" />
    

    (“A”是十六进制换行的ASCII码)

    Example, with a border arround label to show boundry

        3
  •  4
  •   HeyZiko    9 年前

    在ViewModel或模型中执行此操作时,我发现使用environment.newline的结果最一致,包括本地化。它也应该直接在视图中工作,但我没有测试过。

    例子:

    在视野中

    <Label Content="{Binding SomeStringObject.ParameterName}" />
    

    在视图模型中:

    SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
    
        4
  •  0
  •   Scott Jasin    6 年前

    我知道换行符在文本块中起作用。但是,如果您希望在标签中使用换行符,如问题所述,请在字符串中使用该换行符。我之间有空格,否则它将不允许我在评论中发布序列。 和X A; 用这5个字符加上不带空格来换行。