1

リスト ボックスに複数の列を表示したい。次のリンク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>
4

1 に答える 1

2

はい、うまくいきます。それに問題はありますか?

編集:更新された質問に応えて... ListBox をプログラムでスクロールするには、UI オートメーション フレームワークを使用できます。以下は、WPF でも機能することがわかった Silverlight コードです。

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

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

ListBox のテンプレートにネストされた ScrollViewer でScrollBar.LineLeftCommandScrollBar.LineRightCommandをポイントすることでこれを機能させることも可能かもしれませんが、私はそれを機能させることができませんでした。とにかくコード。

于 2010-07-13T05:36:36.637 に答える