System.Windows.Controls.MediaElement で動画のサムネールをツール上に表示したいなぁと思ったんですが、以下のように単純に MediaElement を配置してみると、即座に動画が再生されてしまいました。
<MediaElement Source="{Binding Path}" />
調べて見ると、LoadedBehavior というプロパティがあり、このプロパティの値に Stop や Pause がありました。しかし、Stop や Pause にすると真っ黒なサムネールになってしまいました。やりたいのは動画の1フレーム目のサムネールを表示することです。
最終的には以下のページでこれに対する解決策を発見しました。
https://stackoverflow.com/questions/17782876/wpf-c-sharp-media-element-show-first-image-of-video
具体的には以下のようなコードにしたらMediaElementを使って1フレーム目のサムネールを表示する事ができました。
.xaml
<MediaElement Source="{Binding Path}" LoadedBehavior="Manual" Loaded="MediaElement_Loaded" />
.xaml.cs
private void MediaElement_Loaded(object sender, RoutedEventArgs e)
{
var mediaElement = (MediaElement)sender;
mediaElement.ScrubbingEnabled = true;
mediaElement.Play();
mediaElement.Pause();
}
元のページの方では Play の部分を Position プロパティに 0 を表す TimeSpan を設定しても実現できると記載されていますので、そちらでも良いかもしれません(私は試していません)。