我有以下“网格”:
<Grid x:Name="ImagesGrid" Grid.Row="1" >
<ItemsControl ItemsSource="{Binding FrameViewers}" />
</Grid>
我还有以下UserControl
个项目的集合:
private ObservableCollection<FrameViewer> m_frameViewers = new ObservableCollection<FrameViewer>();
public ObservableCollection<FrameViewer> FrameViewers
{
get => m_frameViewers;
set
{
m_frameViewers = value;
OnPropertyChanged();
}
}
我想在屏幕上动态添加FrameViewer
,使其看起来像所附的图像:
我能够使用“网格”,并在StackPanel
上添加了ItemSource
,但是它们都按照标题的长度进行了大小调整,并附加到了Grid
我在这里想念什么? 我想念什么?
答案 0 :(得分:0)
ItemsControl默认情况下将垂直排列项目。
对于水平布局,您需要将其ItemsPanel
更改为其他ItemsPanelTemplate
-使用水平StackPanel或UniformGrid之类的东西,具体取决于您希望在有什么情况下发生的情况集合中有超过三个FrameViewer项。
有关示例,请参见here。
然后,您需要将ItemsControl ItemTemplate
设置为适当的DataTemplate
,以确保以所需的大小显示每个FrameViewer项。