Использование TextWraping внутри TextBox, внутри Grid для использования внутри ListBox в WP7 - PullRequest
2 голосов
/ 16 апреля 2010

Я пытаюсь заставить мои данные правильно отображаться в GridLayout, который должен использоваться в качестве DataTemplate для Item в ListBox. Вот код, связанный с тем, что я делаю:

<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, он делает это. Когда он не используется, он прекрасно прокручивается, но текст располагается вдоль одной строки и выходит за пределы экрана.

Ответы [ 3 ]

1 голос
/ 19 апреля 2010

По некоторым причинам, которые я не до конца понимаю, установка свойства ListBox ItemsPanel на StackPanel может решить вашу проблему:

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

...

<ListBox ... ItemsPanel="{StaticResource MyItemsPanelTemplate}"/>
1 голос
/ 16 апреля 2010

Продолжает ли оно прыгать, если вы явно устанавливаете ширину верхнего элемента Grid фиксированного размера?

0 голосов
/ 25 мая 2010

Это известная проблема с прокруткой списка в текущем ctp, когда у вас есть элементы переменной высоты. Обходной путь на данный момент - установить фиксированную высоту содержимого элемента списка. Вы, вероятно, также заметите, что полоса прокрутки не всегда правильно перемещается вниз. Обходной путь исправляет это тоже.

Ссылка .

...