我有 TabControl,我希望 TabItems 的内容中有视频。我有将视频添加到选项卡内容的方法:
private void AddVideosFromListToTab(IEnumerable<VideoClass> list, TabItem tab)
{
var stackPanel = new StackPanel { Orientation = Orientation.Horizontal };
foreach (
var media in
list.Select(
video =>
MediaUriElementHelper.CreatePreviewMediaElementUri(video.SamplePath(), 200, 150, mediaPreviewControls,
mediaPlayer_MouseDown)))
{
stackPanel.Children.Add(media);
}
stackPanel.Children.Add(new TextBlock {Text = "Some text"});
tab.Content = stackPanel;
}
这是我用视频创建媒体的方法。我正在使用 MediaUriElement,因为它的性能更好。
public static MediaUriElement CreatePreviewMediaElementUri(string sourceFile, int width, int height, List<MediaUriElement> listMedias, System.Windows.Input.MouseButtonEventHandler mouseDown)
{
var media = new MediaUriElement();
media.BeginInit();
media.Width = width;
media.Height = height;
media.Margin = new Thickness(20);
media.Volume = 0;
media.LoadedBehavior = WPFMediaKit.DirectShow.MediaPlayers.MediaState.Play;
media.MouseDown += mouseDown;
media.Loop = true;
media.Source = new Uri(sourceFile);
media.EndInit();
listMedias.Add(media);
return media;
}
当应用程序加载时没关系,但是当我选择另一个选项卡时没有视频,当我返回第一个选项卡时也没有视频了。我添加了一些文本,并且一直存在。所以问题出在 MediaUriElement 上。有人知道如何解决这个问题吗?谢谢