我是WPF的新手。在我的应用程序中,我在一列网格中显示视频标题列表( gridTitle ),在另一列中,我添加了一个包含媒体的网格( gridVideo ) element(在usercontrol中)并播放在 gridTitle 上选择的视频。当用户从 gridTitle 中选择不同的标题时,我会删除媒体元素(usercontrol),如下所示
if(gridVideo.Children.Count > 0)
{
MediaControl temp = null;
foreach (UIElement element in gridVideo.Children)
{
if (element.GetType() == typeof(MediaControl))
temp = (MediaControl)element;
}
if(temp!=null)
gridVideo.Children.Remove(temp);
// gridMedia.Children.RemoveAt(0);
}
上面的方法删除了包含media元素的用户控件。在这里,我想询问是否需要停止/关闭正在播放的当前视频,否则它将由WPF自动处理。我主要担心的是媒体元素是否不在后台缓冲区中下载数据?
请建议。
答案 0 :(得分:1)
是否绝对有必要用MediaElement替换该控件?您可以根据所选标题重置其MediaElement的Source
属性。这可以使用数据绑定来完成:显示的标题可以是包含Title(用于在列表中显示)和Uri(用于设置MediaElement.Source
属性)的类的实例。然后MediaElement.Source
绑定到SelectedItem.Uri
项容器。