我试图让我的数据在 GridLayout 中正确显示,该 GridLayout 将用作 ListBox 中项目的 DataTemplate。这是与我正在做的事情相关的代码:
<Grid Name="FeedItemTemplate">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Source="{Binding ProfileImage}" Grid.RowSpan="2" Height="75" Width="75" VerticalAlignment="Center" Margin="1" />
<TextBlock Text="{Binding UserName}" Grid.Column="1" Foreground="#FFC8AB14" FontSize="28" HorizontalAlignment="Left"/>
<TextBlock Text="{Binding TimeStamp}" Grid.Column="2" TextWrapping="Wrap" FontSize="18" HorizontalAlignment="Center"/>
<TextBlock Text="{Binding Message}" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="2" TextWrapping="Wrap" FontSize="24" />
</Grid>
问题是使用这种布局,当 TextWrapping 设置为 Wrap 时,Item 可以正确显示,但是当滚动 ListBox 时,一切都非常紧张,你不能以小的增量滚动,它只会到处乱跳。
有什么理由这样做吗?正如我所说,只有当 TextWrapping 设置为 Wrap 时,它才会这样做。当它不使用时,它可以很好地滚动,但文本都在一行中并且不在屏幕上。