在工具提示中添加断裂线

时间:2011-11-17 16:37:54

标签: wpf xaml tooltip

¿如何在XAML中的工具提示中为文本添加分隔线?

我试着用这个:

        <Label Name="label4" UseLayoutRounding="False" Focusable="False" AllowDrop="False" Foreground="Black" Margin="6,44,132.027,76" ToolTipService.ShowDuration="12000">
                <Label.ToolTip>
                    <ToolTip>
                    <TextBlock>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </TextBlock>
                    <TextBlock>Suspendisse eget urna eget elit ullamcorper tincidunt. Sed nec arcu sed ante sodales </TextBlock>
                    <TextBlock>Pellentesque elit libero, semper ac tincidunt vitae, euismod at ligula.</TextBlock>
                    </ToolTip>
                </Label.ToolTip>
            <Label.Content>
                <TextBlock TextAlignment="Right" TextWrapping="Wrap" Height="19" Width="108" >Lorem Ipsum</TextBlock>
            </Label.Content>
        </Label>

但不起作用:

10 个答案:

答案 0 :(得分:89)

我觉得有用的另一种方法是在工具提示中嵌入&#x0a;。此时工具提示将有一个Linebreak。例如

ToolTip="Host name or IP address of the server. Click the &#x0a;Find Server button to help obtain the correct entry."

这允许xaml代码更简洁,但可能不太可读。更多详情请见Newline in string attribute

答案 1 :(得分:66)

<Label>
  <Label.ToolTip> 
     <TextBlock>
          Lorem ipsum dolor sit amet,
          <LineBreak /> 
          consectetur adipiscing elit. 
      </TextBlock> 
  </Label.ToolTip> 
</Label>
  ....

答案 2 :(得分:18)

更紧凑:

<Label TooTip="Line1 &#10; Line2" />

答案 3 :(得分:13)

将您的物品包裹在StackPanel中,将其叠加在另一个

之上

你现在拥有的东西将无法编译,因为工具提示只能有1个子对象,并且你试图添加3个

<Label Name="label4" UseLayoutRounding="False" Focusable="False" AllowDrop="False" Foreground="Black" Margin="6,44,132.027,76" ToolTipService.ShowDuration="12000">
    <Label.ToolTip>
        <StackPanel>
            <TextBlock>Lorem ipsum dolor sit amet, consectetur adipiscing elit. </TextBlock>
            <TextBlock>Suspendisse eget urna eget elit ullamcorper tincidunt. Sed nec arcu sed ante sodales </TextBlock>
            <TextBlock>Pellentesque elit libero, semper ac tincidunt vitae, euismod at ligula.</TextBlock>
        </StackPanel>
    </Label.ToolTip>
    <Label.Content>
        <TextBlock TextAlignment="Right" TextWrapping="Wrap" Height="19" Width="108" >Lorem Ipsum</TextBlock>
    </Label.Content>
</Label>

答案 4 :(得分:5)

以上答案仅适用于xaml代码。如果要在CS代码中添加新行,请使用&#34; Environment.Newline&#34;

label1.ToolTip="Line1" + Environment.NewLine + "Line2";

答案 5 :(得分:4)

你可以这样做:

<Label>
<Label.ToolTip>
    <TextBlock>  
      Line1
      <LineBreak/>
     Line2
  </TextBlock>
</Label.ToolTip>
</Label>

答案 6 :(得分:2)

以下是换行方法的一种变体:

<Label.ToolTip>
    <TextBlock>
        <Run Text=”Line1”/>
        <LineBreak/>
        <Run Text=”Line2”/>
    </TextBlock>
</Label.ToolTip>

这样做的好处是每一行都有自己的风格。

答案 7 :(得分:1)

即使您正在寻找XAML解决方案-这里是另一个C#解决方案:

如果您计划将包括工具提示在内的字符串外包到资源文件(.resx)中(例如,多语言支持),则可以在此资源文件中按实际值进行换行,例如使用 Shift + Enter ,它们也将出现在视图中。

答案 8 :(得分:1)

例如,使用绑定后面的代码

您可以使用此类:

Environment.NewLine

像这样:

labelName.Tooltip = $"line1 {Environment.NewLine} line2 {Environment.NewLine} line3";

答案 9 :(得分:0)

也有不同的方法。您可以告诉 XAML 您希望在书写时保持相同的间距。这可以通过将属性 bash 设置为父元素 - see MSDN page 以获取详细信息来完成。

xml:space="preserve"

这允许您也可以使用彼此相邻的新行、制表符和多个空格,它们不会被删除。