Помещение полосы прокрутки на панель переноса, содержащуюся в элементе управления элементами - PullRequest
2 голосов
/ 22 мая 2009

Кто-нибудь знает, как я могу добавить полосу прокрутки к обертке, содержащейся в элементе управления?

Ответы [ 3 ]

3 голосов
/ 15 июня 2010

Это не сработает,

    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <ScrollViewer>
                <WrapPanel Orientation="Horizontal"  />
            </ScrollViewer>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

Вы получаете неприятное исключение, VisualTree of ItemsPanelTemplate должен содержать Panel. «System.Windows.Controls.ScrollViewer» не является панелью.

1 голос
/ 22 мая 2009

Оберните вокруг него тег ScrollViewer

<ScrollViewer>
   <WrapPanel>
      <!-- your other controls here -->
   </WrapPanel>
</ScrollViewer>
0 голосов
/ 03 марта 2011

Этот образец (модифицированный из образца Kaxaml) должен помочь вам:

    <Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
   <Grid>
    <Grid.Resources>
       <XmlDataProvider x:Key="flickrdata" Source="http://api.flickr.com/services/feeds/photos_public.gne?tags=flower&amp;lang=en-us&amp;format=rss_200">
          <XmlDataProvider.XmlNamespaceManager>
             <XmlNamespaceMappingCollection>
                <XmlNamespaceMapping Prefix="media" Uri="http://search.yahoo.com/mrss/"/>
             </XmlNamespaceMappingCollection>
          </XmlDataProvider.XmlNamespaceManager>
       </XmlDataProvider>
       <DataTemplate x:Key="itemTemplate">
          <Image Width="75" Height="75" Source="{Binding Mode=OneWay, XPath=media:thumbnail/@url}"/>
       </DataTemplate>
       <ControlTemplate x:Key="controlTemplate" TargetType="{x:Type ItemsControl}">
          <WrapPanel IsItemsHost="True" Orientation="Horizontal"/>
       </ControlTemplate>
    </Grid.Resources>
    <ScrollViewer Width="320" Height="225">
      <ItemsControl
         Width="300"
         ItemsSource="{Binding Mode=Default, Source={StaticResource flickrdata}, XPath=/rss/channel/item}"
         ItemTemplate="{StaticResource itemTemplate}"
         Template="{StaticResource controlTemplate}">
      </ItemsControl>
    </ScrollViewer>
 </Grid>
</Page>
...