包含多列wpf的列表框

时间:2010-07-13 05:31:46

标签: wpf listbox multiple-columns

我想在列表框中显示多个列。我引用了以下链接Using WrapPanel and ScrollViewer to give a multi-column Listbox in 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>

1 个答案:

答案 0 :(得分:2)

是的,这样可以正常工作。你有问题吗?

编辑:响应更新的问题...为了以编程方式滚动ListBox,您可以使用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);
}

也可以通过将ScrollBar.LineLeftCommandScrollBar.LineRightCommand指向嵌套在ListBox模板中的ScrollViewer来实现这一点,但是我无法使其工作而我不能知道你是否可以在没有代码的情况下做到这一点。