代码之家  ›  专栏  ›  技术社区  ›  Geeth

具有多列wpf的列表框

  •  1
  • Geeth  · 技术社区  · 14 年前

    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 回复  |  直到 7 年前
        1
  •  2
  •   Josh    14 年前

    是的,那很好。你有什么问题吗?

    编辑:针对更新后的问题。。。为了以编程方式滚动列表框,可以使用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.LineLeftCommand ScrollBar.LineRightCommand