WPF UnifromGrid: как оформить выбранный дочерний элемент с закругленными углами, как в Explorer
Это ссылка на заданный ранее вопрос, касающийся TreeView:
WPF TreeView: как оформить выбранные элементы закругленными углами, как в Проводнике
И это еще одна ссылка на еще один вопрос, который также касается ListView:
WPF ListView: как оформить выбранные элементы закругленными углами, как в Проводнике
Мой вопрос: как перенести это решение на UniformGrid? Потому что я хочу иметь такой же эффект, как показано в 2 примерах, на моих ячейках UniformGrid.
Вот пример моего исходного кода:
<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>
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>