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,但由于某种原因,这使我无法理解
没有找到相关结果
已邀请:
1 个回复
骇毖煽洁铂
有用