Domanda

Sto cercando di ottenere un ItemsPanelTemplate lavorare per un ListBox. Il ListBox viene utilizzato in un DataTemplate, e nessuno dei miei stili ListBox implicite ignorare lo stile di visualizzazione di default. Per qualche ragione, la ItemsPanelTemplate sto specifiying per il controllo (un WrapPanel) viene ignorato e StackPanel viene utilizzato al posto.

Questa è l'intero modello, posso solo supporre che c'è qualcosa che mi manca, che sta causando questo.

<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>
È stato utile?

Soluzione

La mia ipotesi è che la proprietà larghezza nella WrapPanel sta rendendo comportarsi come uno StackPanel.

Altri suggerimenti

Strano, il modello di controllo non dovrebbe ignorare i valori esplicitamente specificati, piuttosto lo scenario opposto mi viene in mente ... Cioè, a meno che il modello di controllo fornisce un pannello con "IsItemsHost" impostata su true. Poi l'ItemsPanel viene ignorato. Il che, probabilmente, è il vostro caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top