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>
Другие вопросы по тегам