Item WPF WrapPanel tidak bergulir satu per satu

Tolong, seseorang bantu saya.

Saya mengatur WrapPanel di ListBox ItemsPanelTemplate. Juga, saya sudah mengatur ScrollViewer.CanContentScroll="True".

Tetapi mengapa item listbox tidak bergulir ke atas/bawah berdasarkan ITEM satu per satu? Gaya gulir masih menggunakan PIXEL.

Ada yang bisa bantu saya?

<Grid>
    <ListBox x:Name="testListbox" ScrollViewer.CanContentScroll="True">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Width="200" ScrollViewer.CanContentScroll="True"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>


        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

        <ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
            <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/>
        </ListBoxItem>

    </ListBox>

</Grid>

person Jayho    schedule 21.10.2009    source sumber


Jawaban (2)


Panel pembungkus tidak dirancang dengan mempertimbangkan fitur ini (pengguliran logis). Anda perlu membuat objek panel baru yang berasal dari kelas wrappanel dan kemudian mengimplementasikan antarmuka IScrollInfo untuk mencapai hasil yang Anda cari.

person Albert Oldfield    schedule 19.11.2009

Saya rasa saya mungkin dapat membantu, meskipun saya tidak begitu yakin apa yang ingin Anda capai. Bisakah Anda lebih spesifik; apakah Anda mencoba membuat setiap ListBoxItem memiliki kemampuan menggulir - untuk kontennya?

Karena Anda tidak dapat menambahkan ScrollViewer ke ItemPanelTemplate, sudahkah Anda mempertimbangkan untuk menambahkannya ke masing-masing ListBoxItems:

Contoh:

<ListBoxItem Background="LimeGreen" BorderBrush="Black" BorderThickness="3" ScrollViewer.CanContentScroll="True">
                <ScrollViewer>
                    <Image Height="50" Width="80" ScrollViewer.CanContentScroll="True"/> 
                </ScrollViewer>
            </ListBoxItem>

Untuk bantuan wpf/xaml lebih lanjut saya menemukan situs ini cukup bagus: www.YourCodeFactory.com

person codeB10    schedule 21.10.2009
comment
Terima kodeB10. Saya ingin mencapai kemampuan menggulir kotak daftar yang menggulir gambar item demi item. Itu berarti saya dapat menggulir listboxitem baris demi baris, bukan dengan mulus per piksel. Anda dapat mencoba menandai blok ‹ListBox.ItemsPanel› pada kode di atas dan mencoba menggulir berdasarkan item. Aneh bahwa kotak daftar tidak bergulir berdasarkan item ketika saya menambahkan blok wrappanel. - person Jayho; 22.10.2009
comment
Hai - sangat ingin membantu. Tapi saya masih tidak yakin apa yang ingin Anda capai. Jika Anda ingin menggulir berdasarkan baris - karena itu panel pembungkus tidak diperlukan. Tetapi jika Anda ingin mengisi setiap item dengan jumlah gambar yang tidak ditentukan, menurut saya pengaturan tampilan daftar salah. Apa pun pilihannya, harap klarifikasi jika Anda masih memerlukan solusi. Selain itu, tidak yakin apa yang Anda maksud dengan piksel halus, apa sebenarnya yang Anda maksud di sana? - person codeB10; 22.10.2009