Автоматическая прокрутка в окне списка Silverlight с пользовательским шаблоном - PullRequest
1 голос
/ 21 ноября 2011

У меня есть ListBox с пользовательским шаблоном, как программно прокрутить его вниз?

Автоматическая прокрутка в окне списка Silverlight описывает метод прокрутки до нижней части ListBox. К сожалению, этот метод не работает с ListBox с пользовательским шаблоном стиля.

У кого-нибудь есть успех прокручивать ListBox с помощью собственного стиля?

Код проблемы:

<Grid.Resources>
    <Style x:Key="HorizontalWrapListBox" TargetType="ListBox">
        <Style.Setters>
            <Setter Property="ItemsPanel">
                <Setter.Value>
                    <ItemsPanelTemplate>
                        <toolkit:WrapPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListBox">
                        <ScrollViewer>
                            <ItemsPresenter />
                        </ScrollViewer>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style.Setters>
    </Style>
</Grid.Resources>

<ListBox x:Name="MyListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}"
         Style="{StaticResource HorizontalWrapListBox}">
    <ListBox.ItemTemplate>
        <DataTemplate>
             <StackPanel Margin="0,0,0,17" Width="432" Height="78">
                 <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" 
                         Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                 <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" 
                         Margin="12,-6,12,0" 
                         Style="{StaticResource PhoneTextSubtleStyle}"/>
             </StackPanel>
         </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

1 Ответ

2 голосов
/ 21 ноября 2011

Вы должны правильно именовать части шаблона, и это может просто начать работать. ScrollViewer должен иметь имя x: Name = "ScrollViewer". Чек

  1. Стили и шаблоны ListBox ,
  2. Настройка внешнего вида существующего элемента управления с помощью шаблона ControlTemplate ,
  3. TemplatePartAttribute
...