Silverlight文本修剪和包装问题

时间:2011-11-23 13:10:24

标签: c# silverlight xaml

我在XAML中有以下布局:

    <StackPanel Height="40">
        <TextBlock TextWrapping="Wrap" TextTrimming="WordEllipsis"  Margin="0,10,0,10"
                               LineHeight="18" FontSize="12">
                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce dapibus commodo dui vulputate laoreet. Donec metus purus, consectetur ut sagittis ut, vestibulum id diam. Suspendisse in urna sem. Ut purus arcu, placerat quis tempus cursus, elementum sed sem. Duis condimentum semper tortor, a pulvinar dolor semper sit amet.
        </TextBlock>
    </StackPanel>

所以在我的stackpanel里面有一个文本框。在这个例子中,我在父堆栈面板中设置了高度,但在我的实际应用程序中,它设置得更高一些。

我必须在多行显示文本并使用省略号作为修剪行为。问题是如果我使用上面的XAML代码,文本的最后一行会被删除。我附上了截图来说明行为:

text gets cut

有没有办法解决这个问题?预期的行为是仅显示第一行和结尾处的省略号。

2 个答案:

答案 0 :(得分:2)

嗯,问题是因为我使用了StackPanels。 StackPanel内部的内容高度应尽可能大,以显示其中的所有内容。但是,父StackPanel有一个高度限制,内部的内容被剪切。

我已将StackPanel替换为网格并修剪和放大包装现在就像一个魅力。

答案 1 :(得分:1)

来自MSDN(http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.texttrimming%28v=vs.95%29.aspx

  

除非TextWrapping,否则TextTrimming属性无效   属性设置为NoWrap。