C# 如何提供从StackPanel中删除项目的关闭功能?

C# 如何提供从StackPanel中删除项目的关闭功能?,c#,wpf,stackpanel,C#,Wpf,Stackpanel,我有一个UserControl,我需要在运行时(每个用户的操作)不断将它添加到StackPanel中。我想在StackPanel中的每个项目的右上角都有一个关闭按钮(一个小“x”) 我可以这样做:将我的UserControl添加到某个面板中,该面板上的“x”按钮在鼠标悬停时会发光,单击该按钮会从StackPanel中删除该项 然而,我正在寻找一个更好的解决这个问题的办法。有没有提供类似功能的控件 我在找TileView。所有我需要的是一个单一的瓷砖行保持每个用户输入添加,并有能力删除一个“瓷砖”

我有一个UserControl,我需要在运行时(每个用户的操作)不断将它添加到StackPanel中。我想在StackPanel中的每个项目的右上角都有一个关闭按钮(一个小“x”)

我可以这样做:将我的UserControl添加到某个面板中,该面板上的“x”按钮在鼠标悬停时会发光,单击该按钮会从StackPanel中删除该项

然而,我正在寻找一个更好的解决这个问题的办法。有没有提供类似功能的控件

我在找TileView。所有我需要的是一个单一的瓷砖行保持每个用户输入添加,并有能力删除一个“瓷砖”。每个磁贴都包含我的UserControl


请让我知道,

您可以使用tileview,但网格也可以在这里工作,您可以将usercontrol添加到单元格,在其他单元格上,您可以提供关闭按钮,在关闭按钮上单击,您可以从网格中删除该行,
如果您要添加多个usercontrol,则网格很容易维护。

您可以使用ItemsControl轻松完成此操作。把它想象成一个没有选择的列表框。只需稍微修改一下:

 <ItemsControl HorizontalAlignment="Center" VerticalAlignment="Center">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Border Padding="4" Background="CornflowerBlue">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>

                        <Button Content="Close" HorizontalAlignment="Right"/>


                        <Grid Margin="4" Grid.Row="1">
                           <!-- put your usercontrol here -->
                        </Grid>

                    </Grid>
                </Border>
            </DataTemplate>
        </ItemsControl.ItemTemplate>

        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>


+1以获取替代解决方案。但是,我希望我的用户控件水平添加,就像我的示例中StackPanel的Orientation=“Horizontal”一样。还有,这是唯一的办法吗?如果你只想要水平方向,我建议你只使用一行,可以根据需要动态添加或删除coulum。