已经对此进行了一些研究,但是还没有能够解决它:
我有一个GridView
,以下是它的所有代码:
<GridView Name="NewsGrid" IsItemClickEnabled="True" ItemClick="NewsGrid_ItemClick">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:News">
<Grid Height="Auto" Margin="0" Width="440">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Image Source="{x:Bind Image}"
HorizontalAlignment="Center"
Stretch="UniformToFill"
Margin="5"
Height="247"
Width="440"/>
<TextBlock Text="{x:Bind Body}"
Foreground="SteelBlue"
Grid.Row="1"
Height="Auto"
HorizontalAlignment="Stretch"
Width="440"
Margin="5 0 5 0"/>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
我想要完成的是TextBlock
如果文本的长度超过440像素则换行。上面的代码没有实现这一点。为了给你一些视觉效果,这里是上面代码的结果:
所以,最后一句话是&#34; Pass&#34;并且问你可以看到它继续前进。我只想让它在下面打破一条新线。我怎样才能做到这一点?我还尝试将Grid
替换为StackPanel
,但结果是一样的。
更新1
已将TextWrapping="Wrap"
添加到我的TextBlock
,可视化结果如下:
最后一个单词不再出现,甚至不在同一行。
答案 0 :(得分:3)
将TextWrapping="Wrap"
添加到您的TextBlock
。
另外! 对于行的定义,这必须发生:
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>