我有一个Window
,其中显示了一组MediaElements
。它们消耗大量内存。有一个预览选项。
预览需要与主Window
同步,MediaElements
已加载并播放。
目前,我运行了两个加载在主Window
和预览Window
中的控件实例,它会减慢整个应用程序的速度。有时候MediaElements
中的一些也会空白。
是否可以在单独的Window
,UserControl
或单独的Panel
中显示已经运行或作为子控件添加的Canvas
或Grid
的实例{{1}}。
答案 0 :(得分:1)
使用多个MediaElements
存在已知限制。我们不建议您see here和here。
我建议您尝试使用WPF MediaKit或DirectShowNet库。
WPF MediaKit提供了MediaElement
的直接替代方案。
MediaUriElement
可以像这样使用
<DirectShowControls:MediaUriElement
Source="{Binding ElementName=fileDialog, Path=FilePath}"
Stretch="Uniform"
VideoRenderer="VideoMixingRenderer9"
LoadedBehavior="Play"/>
答案 1 :(得分:0)
使用VisualBrush
解决了主窗口和预览窗口的同步问题,并将Visual
分配给主窗口,这有效地帮助我减少了内存使用量。
参考:链接:visual-brush-in-wpf