Frage

Ich versuche, eine ItemsPanelTemplate Arbeit für eine ListBox zu bekommen. Die ListBox in einem DataTemplate, und keiner meiner impliziten ListBox Stile überschreiben die Standard-visuellen Stil verwendet. Aus irgendeinem Grund die ItemsPanelTemplate ich für die Kontrolle bin Einzelheiten enthält (a WrapPanel) wird ignoriert und ein StackPanel wird stattdessen verwendet.

Dies ist die gesamte Vorlage ist, kann ich nur annehmen, dass es etwas, was ich gesucht habe, die dies verursacht.

<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>
War es hilfreich?

Lösung

Meine Vermutung ist, dass die Breite Eigenschaft im WrapPanel macht es als Stackpanel verhalten.

Andere Tipps

Seltsam, wird die Steuervorlage nicht soll die explizit angegebenen Werte außer Kraft zu setzen, eher das Gegenteil Szenario mir in den Sinn kommt ... Das heißt, es sei denn, das Kontrolltemplate eine Tafel mit „IsItemsHost“ auf true gesetzt liefert. Dann wird die Itemspanel ignoriert. Welche wahrscheinlich ist Ihr Fall.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top