C# 添加更多my usercontrol容器或usercontrol集合显示
我不知道我要找的容器/控件将被调用,因此我无法真正搜索它 添加更多相同的Usercontrol Usercontrol 单击+会将My Usercontrol的新实例添加到现有实例的右侧 单击X将处理所单击的usercontrol 我并不是真的在寻找一个选项卡控件,它可以将每个新实例放在一个新的选项卡上,但是如果没有其他东西,它可能会这样做。 显然,设计并非如图所示,图中仅说明了基本理念 是否有任何关键字/名称建议或现有实现的链接?C# 添加更多my usercontrol容器或usercontrol集合显示,c#,.net,wpf,layout,user-controls,C#,.net,Wpf,Layout,User Controls,我不知道我要找的容器/控件将被调用,因此我无法真正搜索它 添加更多相同的Usercontrol Usercontrol 单击+会将My Usercontrol的新实例添加到现有实例的右侧 单击X将处理所单击的usercontrol 我并不是真的在寻找一个选项卡控件,它可以将每个新实例放在一个新的选项卡上,但是如果没有其他东西,它可能会这样做。 显然,设计并非如图所示,图中仅说明了基本理念 是否有任何关键字/名称建议或现有实现的链接? e、 g.也许有一种样式可以将列表框转换为合适的样式?您确实可
e、 g.也许有一种样式可以将列表框转换为合适的样式?您确实可以使用列表框并设置其ItemTemplate和ItemsPanelTemplate:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Name}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当然,您的ItemTemplate将是对控件的引用。您确实可以使用列表框并设置其ItemTemplate和ItemsPanelTemplate:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Name}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
当然,您的ItemTemplate将是对控件的引用。您可以查看一个称为carousel控件的东西,该控件使用其后面的对象列表,并以类似于itunes的方式显示它们。这可能有点过头了,但这是一个解决方案。可以看到一个例子
如果这对于您的需要来说太高级了,它是否可以像stackpanel一样简单,带有一个绑定到用户控件列表的滚动条?您可以查看一个称为carousel控件的东西,该控件使用其后面的对象列表,并以类似于itunes的方式显示它们。这可能有点过头了,但这是一个解决方案。可以看到一个例子 如果这对于您的需要来说太高级了,它是否可以像stackpanel一样简单,带有一个绑定到用户控件列表的滚动条?我会使用ItemsControl并自定义它的ItemsPanelTemplate,使其成为您想要的任何内容 ItemsControl用于迭代对象集合,并以您想要的任何形式显示它们。如果您感兴趣,我为它们编写了一些简单的代码示例,或者下面是另一个快速示例:
<DockPanel x:Name="RootPanel">
<Button Style="{StaticResource AddButtonStyle}"
DockPanel.Dock="Right" VerticalAlignment="Center"
Command="{Binding AddItemCommand" />
<ScrollViewer>
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<local:MyUserControl />
<Button Style="{StaticResource RemoveButtonStyle}"
Command="{Binding ElementName=RootPanel, Path=DataContext.RemoveItemCommand}"
CommandParameter="{Binding }"
HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</DockPanel>
ItemsControl将绑定到对象的ObservableCollection,而Add/Remove按钮只需从该集合中添加/删除项。由于它是一个ObservableCollection,当集合发生更改并自动更新时,它将通知UI。我将使用ItemsControl并将其ItemsPanelTemplate自定义为您想要的任何内容
ItemsControl用于迭代对象集合,并以您想要的任何形式显示它们。如果您感兴趣,我为它们编写了一些简单的代码示例,或者下面是另一个快速示例:
<DockPanel x:Name="RootPanel">
<Button Style="{StaticResource AddButtonStyle}"
DockPanel.Dock="Right" VerticalAlignment="Center"
Command="{Binding AddItemCommand" />
<ScrollViewer>
<ItemsControl ItemsSource="{Binding MyCollection}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<local:MyUserControl />
<Button Style="{StaticResource RemoveButtonStyle}"
Command="{Binding ElementName=RootPanel, Path=DataContext.RemoveItemCommand}"
CommandParameter="{Binding }"
HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</DockPanel>
ItemsControl将绑定到对象的ObservableCollection,而Add/Remove按钮只需从该集合中添加/删除项。由于它是一个可观察的集合,当集合发生更改并自动更新时,它将通知用户界面。carousel看起来不错!为了使它满足我的需要,1我如何使每个项目都有一个X点击,这将删除该项目,2我将始终在列表的末尾添加一个项目,这将是+用户控件,单击哪个将添加新项目?在每个项目的模板中,您可以添加一个按钮,单击该按钮将从绑定到旋转木马的列表中删除所选项目。这反过来将从传送带中删除该项目。我还没有使用链接文章中的旋转木马控件。这是我在寻找时发现的最完整的例子。我会想象在列表中添加一个项目会将其添加到旋转木马列表的末尾。旋转木马看起来很可爱!为了使它满足我的需要,1我如何使每个项目都有一个X点击,这将删除该项目,2我将始终在列表的末尾添加一个项目,这将是+用户控件,单击哪个将添加新项目?在每个项目的模板中,您可以添加一个按钮,单击该按钮将从绑定到旋转木马的列表中删除所选项目。这反过来将从传送带中删除该项目。我还没有使用链接文章中的旋转木马控件。这是我在寻找时发现的最完整的例子。我可以想象,在列表中添加一个项目会将其添加到旋转木马列表的末尾。谢谢!我还有一个问题要问,第一条评论是53AN?谢谢!我还有一个问题,53AN的第一条评论是什么?