如何在TextBlock中包装文本?

时间:2011-11-16 12:07:29

标签: c# visual-studio xaml windows-phone-7

我是windows phone7开发的新手,有一点问题。

我的界面中有一个文本块(Label),在运行时我使用该标签来显示动态数据。问题是当文本太长(比屏幕的宽度)时,它只显示一半的数据(只有符合宽度的内容)。去多行并不重要,但我想显示完整的内容。我测试了Textblock(Label)属性,但没有找到任何工作。

有人可以帮助我。 (我正在使用visual studio 2010)。感谢


以下是XAML

<Grid x:Name="LayoutRoot" Height="98">
    <Ellipse Height="25" HorizontalAlignment="Left" Name="ellipse1" Stroke="Black" StrokeThickness="1" VerticalAlignment="Top" Width="46" Margin="6,13,0,0" Fill="#FFDB4C4C" />
    <TextBlock Height="30" HorizontalAlignment="Left" Margin="66,10,0,0" Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" Width="402" AllowDrop="False" TextWrapping="NoWrap" UseLayoutRounding="True" DataContext="{Binding}" />
    <TextBlock Height="30" HorizontalAlignment="Left" Margin="66,44,0,0" Name="textBlock2" Text="TextBlock" VerticalAlignment="Top" Width="402" />
</Grid>

1 个答案:

答案 0 :(得分:13)

只要有足够的垂直空间,设置属性TextWrapping = "Wrap"可能会解决您的问题。

修改

根据您希望调整大小行为的方式,这应该有效:

<Grid x:Name="LayoutRoot">
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" MinHeight="40" />
        <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="60" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Ellipse Margin="5" Stroke="Black" StrokeThickness="1" Fill="#FFDB4C4C" />
    <TextBlock HorizontalAlignment="Left" Margin="5" Name="textBlock1"  VerticalAlignment="Top" TextWrapping="Wrap" UseLayoutRounding="True" Grid.Column="1" Text="sdfsdf sdf sdf sdf sd f sdf" />
    <TextBlock  HorizontalAlignment="Left" Margin="5" Name="textBlock2" VerticalAlignment="Top" TextWrapping="Wrap" Grid.Column="1" Grid.Row="1" Text="sdfsdf sdf sdf sdf sd f sdf" />
</Grid>