2

ListBox 内の項目の DataTemplate として使用される GridLayout 内でデータを適切に表示しようとしています。私がやっていることに関連するコードは次のとおりです。

<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 に設定されている場合、アイテムは正しく表示されますが、ListBox をスクロールするとすべてが非常に不安定になり、少しずつスクロールできず、あちこちにジャンプするだけです。

これを行う理由は何ですか?前述したように、TextWrapping が Wrap に設定されている場合にのみ、これが行われます。使用しない場合は問題なくスクロールしますが、テキストはすべて 1 行に沿って画面からはみ出します。

4

3 に答える 3

1

トップレベルのグリッド要素の幅を固定サイズに明示的に設定した場合、ジャンプし続けますか?

于 2010-04-16T19:34:31.450 に答える
1

私が完全に理解していない何らかの理由で、ListBox のItemsPanelプロパティを StackPanel に設定すると、問題が解決する場合があります。

<UserControl.Resources>
    <ItemsPanelTemplate x:Key="MyItemsPanelTemplate">
        <StackPanel/>
    </ItemsPanelTemplate>
</UserControl.Resources>

...

<ListBox ... ItemsPanel="{StaticResource MyItemsPanelTemplate}"/>
于 2010-04-19T09:56:59.037 に答える
0

これは、高さが可変のアイテムがある場合の現在の ctp でのリストボックスのスクロールに関する既知の問題です。現時点での回避策は、リストボックス アイテムのコンテンツに固定の高さを設定することです。また、スクロール バーが常に適切に下に移動しないことにも気付くでしょう。回避策もそれを修正します。

参照

于 2010-05-25T00:18:41.940 に答える