2010-07-13 46 views
1

我想在列表框中显示多列。我已经提到以下链接Using WrapPanel and ScrollViewer to give a multi-column Listbox in WPF带多列的列表框wpf

问题:

我想使用重复按钮滚动内容。如何控制使用按钮的列表框滚动条。

代码:

<ListBox Name="lbTrack" ScrollViewer.VerticalScrollBarVisibility="Disabled" ItemsSource="{Binding}"> 
         <ListBox.ItemTemplate> 
          <DataTemplate> 
           <StackPanel> 
            <TextBlock FontSize="14" Margin="10" Text="{Binding TrackName}" />         </StackPanel> 
          </DataTemplate> 
         </ListBox.ItemTemplate> 
         <ListBox.ItemsPanel> 
         <ItemsPanelTemplate> 
          <WrapPanel IsItemsHost="True" Orientation="Vertical"></WrapPanel> 
         </ItemsPanelTemplate> 
         </ListBox.ItemsPanel> 
        </ListBox> 

回答

2

是的,这将正常工作。你有问题吗?

编辑:为了响应更新的问题...为了以编程方式滚动列表框,您可以使用UI自动化框架。下面是一些Silverlight代码,我发现它也适用于WPF。

var automationPeer = FrameworkElementAutomationPeer.FromElement(element) ?? 
        FrameworkElementAutomationPeer.CreatePeerForElement(element); 

var scrollProvider = automationPeer.GetPattern(PatternInterface.Scroll) as IScrollProvider; 
if (scrollProvider != null) { 
    scrollProvider.Scroll(horizontalScrollAmount, verticalScrollAmount); 
} 

它也有可能得到这个由指着ScrollViewer中的ScrollBar.LineLeftCommandScrollBar.LineRightCommand嵌套在ListBox的模板工作,但我没能得到那个工作,我不知道,如果你能无论如何,无需执行代码。