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にあります。誰かがこれを修正する方法を知っていますか?ありがとう