Silverlight ItemsControl vertikale Bildlaufleiste, mit einem wrappanel als ControlTemplate

Habe ich eine Sammlung von Elementen, die jeweils einen Namen und eine subcollection von image-blobs.
Ich möchte die Anzeige eines Accordion, wird mit jedem Artikel für jede der MainElements. in jedem element, zeige ich die Bilder in der subcollecion der sagte MainElement.
Das Akkordeon wird durch den Benutzer geändert, so dass ich mit einem wrappanel für die Präsentation der Bilder. Wenn das Akkordeon ist weit genug, die Bilder ordnen sich passend so viele wie möglich in jeder Zeile.
das problem kommt, wenn das wrappanel zeigt nur ein Bild pro Zeile (weil es nicht genug Platz für mehr), das Bild Liste geht weiter, aber ich kann nicht alle Bilder ansehen, weil Sie nicht passen, innerhalb des Steuerelements, die Höhe.
Ich brauche eine vertikale Bildlaufleiste angezeigt werden innerhalb der AccordionItem also ich kann scrollen Sie in der Bildliste.
So, hier ist mein code:

<layoutToolkit:Accordion Width="Auto" Height="Auto" ItemsSource="{Binding MainElementCollection}">
    <layoutToolkit:Accordion.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MainElementName}" />
        </DataTemplate>
    </layoutToolkit:Accordion.ItemTemplate>
    <layoutToolkit:Accordion.ContentTemplate>
        <DataTemplate>
            <ItemsControl ItemsSource="{Binding SubElementCollection}" ScrollViewer.VerticalScrollBarVisibility="Auto" >
                    <ItemsControl.Template>
                        <ControlTemplate>
                            <controlsToolkit:WrapPanel />
                        </ControlTemplate>
                    </ItemsControl.Template>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Image Margin="2" Width="150" Source="{Binding PreviewImage, Converter={StaticResource ImageConverter}}" />
                            </Grid>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
        </DataTemplate>
    </layoutToolkit:Accordion.ContentTemplate>
</layoutToolkit:Accordion>

http://www.silverlightshow.net/tips/How-to-add-scrollbars-to-ItemsControl.aspx schlägt vor, ich solle um mein wrappanel mit einem scrollviewer-Element, wie dies

                <ItemsControl.Template>
                    <ControlTemplate>
                        <scrollviewer>
                        <controlsToolkit:WrapPanel />
                        </scrollviewer>
                    </ControlTemplate>
                </ItemsControl.Template>

Aber dann ist meine wrappanel wird wirklich klein und ich kann nur sehen, eine kleine vertikale Bildlaufleiste
Irgendwelche Ideen?
Vielen Dank.

Edit: ich dachte, dassder wrappanel verliert seine Breite, wenn in der controltemplate -

Es sollte wie folgt verwendet werden:

                               <ItemsControl.ItemsPanel>
                                    <ItemsPanelTemplate>
                                            <controlsToolkit:WrapPanel ScrollViewer.VerticalScrollBarVisibility="Visible" />
                                    </ItemsPanelTemplate>
                                </ItemsControl.ItemsPanel>

Trotzdem habe ich versucht, indem das ScrollViewer-Element.VerticalScrollBarVisibility="Visible" - Zeile, aber ich bin wieder stecken.

Wieder bearbeitet:

Nun meine wrappanel sieht wie folgt aus:

                    <ItemsControl ItemsSource="{Binding StageVideos}">
                        <ItemsControl.ItemsPanel>
                            <ItemsPanelTemplate>
                                    <controlsToolkit:WrapPanel />
                            </ItemsPanelTemplate>
                        </ItemsControl.ItemsPanel>
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <Image Margin="2" Width="150" Cursor="Hand" MouseLeftButtonDown="videoPreview_MouseLeftButtonDown" Tag="{Binding}" Source="{Binding PreviewImage, Converter={StaticResource ImageConverter}}" />
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                        <ItemsControl.Template>
                            <ControlTemplate>
                                <ScrollViewer VerticalScrollBarVisibility="Visible">
                                    <ItemsPresenter />
                                </ScrollViewer>
                                </ControlTemplate>
                        </ItemsControl.Template>
                    </ItemsControl>

Ich bin mit einem wrappanel, wie die Elemente Platte, und ich bin mit dem ControlTemplate zu umgeben, den Moderator mit einem scrollviewer. Immer noch kein Glück :/

InformationsquelleAutor Orestes | 2010-03-15

Schreibe einen Kommentar