0

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

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

但是,我正在寻找更好的解决方案来解决这个问题。就像有没有提供类似功能的控件?

我正在寻找 TileView。我所需要的只是一行 Tiles,它会根据用户输入不断添加,并且能够删除“Tile”。每个图块都将包含我的 UserControl。

请告诉我,

4

2 回答 2

1

您可以使用 tileview,但 Grid 也可以在这里工作,您可以将用户控件添加到一个单元格,在其他单元格上您可以提供一个关闭按钮,然后在关闭按钮上单击您可以从网格中删除该行,
如果您要添加多个用户控件比 Grid 可以轻松维护。

于 2012-08-30T05:05:43.900 回答
0

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

 <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>
于 2012-08-31T11:53:26.580 回答