hachikun@昼休みです。
これ、WinFormとWPFでずいぶんと挙動が違うんですねえ。むむむ。
[WinForm]
- COMで「Windows Media Player」の参照を追加する。
- ツールボックスにWindows Media Playerが出ないなら、ツールボックス上で右クリックして「アイテムの選択」からいってみよう。
- それ以外の要素は以下の通り。
using System.Media; namespace dogaold1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); axWindowsMediaPlayer1.uiMode = "none"; axWindowsMediaPlayer1.stretchToFit = true; } private void button1_Click(object sender, EventArgs e) { //ファイルオープン if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { string fileName = this.openFileDialog1.FileName; axWindowsMediaPlayer1.uiMode = "none"; //渡されたファイルURLを読み込み axWindowsMediaPlayer1.URL = fileName; } } } }
こんな感じですな。
[WPF]
WPFでは注意点なんてない……と言いたいところだけど、ダイヤログ関係が全然違うのね。
Microsoft.Win32のそれを使ってみた。用法も全然違うし、フィルタ設定も自分で書くはめに……おお。
using Microsoft.Win32; namespace doga1 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); MediaElement me1 = new MediaElement(); me1.LoadedBehavior = MediaState.Play; // ロードしたら自動再生 me1.Stretch = Stretch.UniformToFill; // サイズ変更に追従するか? } private void button1_Click(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.FilterIndex = 0; openFileDialog.Filter = "Video Files(*.mp4;*.avi)|*.mp4;*.avi|All Files (*.*)|*.*"; bool? result = openFileDialog.ShowDialog(); if (result == true) { me1.Source = new Uri(openFileDialog.FileName, UriKind.RelativeOrAbsolute); } } } }
実行してみると……?
ツールボックスにコントロールが出てこなくて途方にくれておりました。
ありがとうございます。