您的位置:首页 > 其它

【wpf基础】wpf MediaElement全屏播放视频功能

2016-12-18 20:27 411 查看
最近在研究如何将视频全屏播放,一开始思路A:弹窗将MediaElement对象add到一个新的全屏窗体,报错

指定的元素已经是另一个元素的逻辑子元素。请先将其断开连接。


后续转换思路B:将本窗体其他控件隐藏掉,然后窗体最大化,去掉边框,然后把MediaElement设置成屏幕的宽高。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
MediaElement myPlayer = new MediaElement();

public MainWindow()
{
InitializeComponent();

myPlayer.Margin = new Thickness(1, 1, 1, 1);
myPlayer.Width = ActualWidth;
myPlayer.Height = ActualHeight;

myPlayer.LoadedBehavior = MediaState.Manual;
var mp4_path = AppDomain.CurrentDomain.BaseDirectory + "video.mp4";
myPlayer.Source = new Uri(mp4_path, UriKind.RelativeOrAbsolute);

(Content as Grid).Children.Add(myPlayer);
}

void myContent_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (FullScreenHelper.IsFullscreen(this))
FullScreenHelper.ExitFullscreen(this);
else
FullScreenHelper.GoFullscreen(this);
}

private void Button_Click(object sender, RoutedEventArgs e)
{
myPlayer.Play();
}

private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
myPlayer.Width = ActualWidth;
myPlayer.Height = ActualHeight;
}

}
}


View Code



双击视频,全屏播放



有需要这个效果的可以参考

源码:http://pan.baidu.com/s/1mi8qII8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: