首页 新闻 会员 周边 捐助

wpf mediaelement 嵌入式 全屏

0
悬赏园豆:30 [已关闭问题] 关闭于 2015-07-16 14:11

我做了一个wpf的mediaelement视频播放控件,现在想做一个全屏的功能不知道该如何下手。

c#牛刀小试的主页 c#牛刀小试 | 初学一级 | 园豆:44
提问于:2015-06-04 15:11
< >
分享
所有回答(1)
0

 

private void FullOrMin(Window window)
{
// 如果是全屏,则窗口
if (window.WindowState == WindowState.Maximized)
{
window.Topmost = false;
window.WindowState = WindowState.Normal;
window.WindowStyle = WindowStyle.SingleBorderWindow;

// 设置为可调整窗体大小
window.ResizeMode = ResizeMode.CanResizeWithGrip;
window.Width = 800;
window.Height = 600;

// 获取窗口句柄
var handle = new WindowInteropHelper(window).Handle;

// 获取当前显示器屏幕
// Screen screen = Screen.FromHandle(handle);

window.Left = (SystemParameters.PrimaryScreenWidth - window.Width) / 2;//(screen.Bounds.Width - window.Width) / 2;
window.Top = (SystemParameters.PrimaryScreenHeight - window.Height) / 2;//(screen.Bounds.Height - window.Height) / 2;

//window.WindowState = WindowState.Minimized;
return;
}

// 如果是窗口,则全屏
if (window.WindowState == WindowState.Normal)
{
// 变成无边窗体
window.WindowState = WindowState.Normal; // 假如已经是Maximized,就不能进入全屏,所以这里先调整状态
window.WindowStyle = WindowStyle.None;
window.ResizeMode = ResizeMode.NoResize;

// 最大化后总是在最上面
window.Topmost = true;

//获取窗口句柄
var handle = new WindowInteropHelper(window).Handle;

// 获取当前显示器屏幕
// Screen screen = Screen.FromHandle(handle);

// 调整窗口最大化
window.MaxWidth = SystemParameters.PrimaryScreenWidth;
window.MaxHeight = SystemParameters.PrimaryScreenHeight;
window.WindowState = WindowState.Maximized;

// 解决切换应用程序的问题
window.Activated += new EventHandler(window_Activated);
window.Deactivated += new EventHandler(window_Deactivated);
}

}

static void window_Deactivated(object sender, EventArgs e)
{
var window = sender as Window;
window.Topmost = false;
}

static void window_Activated(object sender, EventArgs e)
{
var window = sender as Window;
window.Topmost = true;
}

 

 

//调用(窗口状态下调用就是全屏,全屏调用就是窗口),调的时候把窗口或者关闭的代码也写上,不然没有关闭的地方

FullOrMin(this);//可以根据自己的需求再改改

澈澈 | 园豆:440 (菜鸟二级) | 2015-06-04 16:42

您好,首先感谢你的回答。 我看了一下 你给的代码好像是window下只有播放器的情况下 做的window全屏。我想要的效果是window下面有很多内容不只是播放器。播放器是嵌入进去的。在这种情况下做播放器的全屏。

支持(0) 反对(0) c#牛刀小试 | 园豆:44 (初学一级) | 2015-06-08 09:48

@c#牛刀小试: 有什么区别么,我可以理解成pps的那种视频全屏么?

如果是那样也是一样的道理啊,在你的布局界面可以用2个上下层的grid,底层的grid就是显示正常的布局,上层的grid默认隐藏,当播放器需要全屏的时候你首先需要判断当前windows窗口是否全屏,如果不是你可以按照上面的代码把windows窗口置为全屏,然后把播放器加载到上层的那个grid里显示出来,这样就是你想要的全屏了吧?这个思路是你想要的结果么?

支持(0) 反对(1) 澈澈 | 园豆:440 (菜鸟二级) | 2015-06-11 15:17

@澈澈: 我做的是一个用户控件   控件里面有个全屏按钮 点击直接全屏 是不要考虑嵌入在哪里  也无法操作它当前嵌入界面的布局的。

支持(0) 反对(0) c#牛刀小试 | 园豆:44 (初学一级) | 2015-06-29 11:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册