这是之前提出的问题的链接,涉及TreeView:
WPF TreeView: How to style selected items with rounded corners like in Explorer
这是另一个问题的另一个链接,它涉及一个ListView:
WPF ListView: How to style selected items with rounded corners like in Explorer
我的问题是:如何在UniformGrid上迁移此解决方案?因为我希望在我的UniformGrid单元格中具有与2个示例中所示相同的效果。
这是我的源代码示例:
<Grid VerticalAlignment="Center" HorizontalAlignment="Center" >
<ItemsControl ItemsSource="{Binding ChildrenList}" BorderThickness="0"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding NumberOfColumns}" HorizontalAlignment=
"Center" Background="Transparent" Margin="4,4,4,4" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
答案 0 :(得分:1)
你已经到了中途了一段时间:)。
您需要使用ListBox
而不是ItemsControl
(因为ItemsControl
不处理选择而且没有“选定项目”。
然后您使用与示例中相同的ItemsPanel
,并使用与您链接到的ItemContainerStyle
帖子相同的ListView
(注意:只需确保重命名内容从“ItemsControl”/“ListView”和“ListViewItem”到“ListBox”和“ListBoxItem”):
<ListBox ItemsSource="{Binding ChildrenList}" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding NumberOfColumns}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<!-- NOTE: "ListBox" and "ListBoxItem": -->
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
...
</Style>
</ListBox.ItemContainerStyle>
</ListBox>