ItemsPanel模板无效

| 我正在尝试将ListBox中的ItemsPanel交换为WrapPanel,但是样式上的ItemsPanelTemplate似乎没有效果。找到并应用该样式是因为边框和背景的颜色发生了变化,但是使用snoop进行检查不会显示WrapPanel。
<Style x:Key=\"CocktailGrid\" TargetType=\"ListBox\" BasedOn=\"{StaticResource {x:Type ListBox}}\">
    <Setter Property=\"SnapsToDevicePixels\" Value=\"true\"/>
    <Setter Property=\"Background\" Value=\"White\" />
    <Setter Property=\"BorderThickness\" Value=\"1\" />
    <Setter Property=\"BorderBrush\" Value=\"Black\" />
    <Setter Property=\"OverridesDefaultStyle\" Value=\"true\" />
    <Setter Property=\"SelectionMode\" Value=\"Single\" />
    <Setter Property=\"ScrollViewer.HorizontalScrollBarVisibility\" Value=\"Disabled\"/>
    <Setter Property=\"ScrollViewer.VerticalScrollBarVisibility\" Value=\"Auto\"/>
    <Setter Property=\"ScrollViewer.CanContentScroll\" Value=\"true\"/>
    <Setter Property=\"ItemsPanel\">
        <Setter.Value>
            <ItemsPanelTemplate>
                <WrapPanel
                     IsItemsHost=\"True\"
                     Width=\"{Binding
                              Path=ActualWidth,
                              RelativeSource={RelativeSource
                                  Mode=FindAncestor,
                                  AncestorType=
                                     {x:Type ScrollContentPresenter}}}\" />
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property=\"ItemTemplate\">
        <Setter.Value>
            <DataTemplate>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height=\"80\" />
                        <RowDefinition Height=\"*\"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width=\"Auto\"/>
                    </Grid.ColumnDefinitions>
                    <Image Grid.Row=\"0\" Source=\"{Binding ImageName}\" Height=\"80\" Stretch=\"Uniform\"/>
                    <TextBlock Grid.Row=\"1\" Text=\"{Binding Name}\" TextWrapping=\"Wrap\" TextTrimming=\"CharacterEllipsis\"/>
                </Grid>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>
ListBox声明为:
<ListBox x:Name=\"lstCocktails\" PreviewKeyDown=\"dg_PreviewKeyDown\" ItemsSource=\"{Binding Source={StaticResource drinksSource}}\" SelectedItem=\"{Binding SelectedItem,ElementName=root,Mode=TwoWay}\" Style=\"{StaticResource CocktailGrid}\"
             SelectionMode=\"Single\" MouseDoubleClick=\"lstCocktails_MouseDoubleClick\">
窥探视觉树: 我在应用程序的其他部分覆盖了ItemsPanels,但由于某种原因,这使我无法理解     
已邀请:
        使用它代替ItemsTemplate
        <Setter Property=\"Template\">
           <Setter.Value>
              <ControlTemplate TargetType=\"ListBox\">
                 <Border Background=\"{TemplateBinding ListBox.Background}\" CornerRadius=\"5\">
                    <WrapPanel IsItemsHost=\"True\"/>
                 </Border>
              </ControlTemplate>
           </Setter.Value>
        </Setter>
有用     

要回复问题请先登录注册