将MediaElement从VM链接到View

时间:2014-03-20 07:19:13

标签: wpf mvvm mediaelement

我的情况是这样的:
我有一个名为MediaElementPlayer的类,它代表一个视频播放器,并充当DataTemplate的ViewModel。它基于此idea,可以调整WPF和MVVM而不是Silverlight。

它工作得很好,但我也需要能够最大化视频 为此,我创建了一个名为FullScreenWindow的不同窗口,该窗口包含一个ItemContainer来绘制视频播放器。当我创建这个窗口时,我从主窗口传递MediaElementPlayer对象。这也有效。
问题是,当打开全屏窗口时,媒体的位置不会被保留,因为它会创建一个新的MediaElement。

有没有办法我可以使用我已经在mt MediaElementPlayer(VM)中的MediaElement对象并在视图上绘制它,而不是创建一个新的?这将有助于我保持媒体在各个窗口的位置。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

您可以在FullScreenWindow中创建新的MediaElement UserControl,然后使用Binding设置其大小:您可以将MediaElement对象实际Size绑定到ViewModel MediaElementPlayer的属性(您可以通过创建行为来更新这些值附加到UserControl的SizeChanged事件。

然后,FullScreenWindow的ViewModel可以根据ViewModel的属性设置其MediaElement的Size