从网格中正确删除mediaelement

时间:2012-03-17 16:37:51

标签: wpf grid element media

我是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自动处理。我主要担心的是媒体元素是否不在后台缓冲区中下载数据?

请建议。

1 个答案:

答案 0 :(得分:1)

是否绝对有必要用MediaElement替换该控件?您可以根据所选标题重置其MediaElement的Source属性。这可以使用数据绑定来完成:显示的标题可以是包含Title(用于在列表中显示)和Uri(用于设置MediaElement.Source属性)的类的实例。然后MediaElement.Source绑定到SelectedItem.Uri项容器。