Question

Je suis en train d'obtenir un ItemsPanelTemplate travaillant pour un ListBox. Le ListBox est utilisé dans un DataTemplate, et aucun de mes styles ListBox implicites passer outre le style visuel par défaut. Pour une raison quelconque, le ItemsPanelTemplate je specifiying pour le contrôle (un WrapPanel) est ignorée et un StackPanel est utilisé à la place.

Ceci est le modèle entier, je ne peux que supposer qu'il ya quelque chose que je suis absent qui est à l'origine de cette.

<DataTemplate x:Key="GroupLargeIconsTemplate" DataType="{x:Type Core:IGroup}">
    <ListBox ItemsSource="{Binding Children}" OverridesDefaultStyle="True">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel HorizontalAlignment="Left" VerticalAlignment="Top" IsItemsHost="True"  ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto"
                           Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}" />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <DataTemplate.Resources>
                    <conv:IconConverter x:Key="IconConverter"/>
                </DataTemplate.Resources>
                <StackPanel Margin="2" Width="100" Height="140">
                    <Image Source="{Binding Icon,Converter={StaticResource IconConverter},ConverterParameter=96}"/>
                    <TextBlock Text="{Binding Name}" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</DataTemplate>
Était-ce utile?

La solution

Je suppose que la propriété largeur du WrapPanel fait qu'il se comporte comme un StackPanel.

Autres conseils

Etrange, le modèle de contrôle n'est pas censé remplacer les valeurs spécifiées explicitement, plutôt le scénario inverse vient à l'esprit ... Autrement dit, à moins que le modèle de contrôle fournit un panneau avec « IsItemsHost » valeur true. Ensuite, la ItemsPanel est ignorée. Ce qui, sans doute, est votre cas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top