我被要求开发一个WPF应用程序,该应用程序从一些摄像机中检索数据并在该应用程序内的某些窗格上显示输出。我刚刚发现UserControl可以播放视频,它基于VideoOSPlatform(由milestone开发)。
我的问题不是关于如何再现视频回放的问题,而是关于用户界面,我应该提出。
情况如下。我可以在该应用程序上最多播放6个视频,但是最终,用户可以选择显示哪个摄像机。 (为此,我想到了一个树状视图,用户将相机拖到工作区中。
主要问题是关于如何划分应用程序上下文以显示回放?我想我不能只使用Grid.RowsDefinition / Grid.ColumnsDefinition
并将其分为6个部分。如果用户只有一台摄像机处于活动状态怎么办?我会全屏播放。
对此有任何建议/经验吗? 谢谢
答案 0 :(得分:2)
使用带有UniformGrid的ItemsControl。 UniformGrid会根据显示的配置和项目数量自动添加行/列。
<ItemsControl Grid.Row="0" ItemsSource="{Binding LoadedDevices}">
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="FrameworkElement.Margin" Value="5"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="Black">
<Grid>
<views:DeviceView x:Name="display" Img="{Binding DeviceImage}"/>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
然后(可以)看起来像这样: