在另一个Window中添加Window或UserControl的实例

时间:2013-03-27 11:56:03

标签: c# wpf wpf-controls wpftoolkit

我有一个Window,其中显示了一组MediaElements。它们消耗大量内存。有一个预览选项。

预览需要与主Window同步,MediaElements已加载并播放。

目前,我运行了两个加载在主Window和预览Window中的控件实例,它会减慢整个应用程序的速度。有时候MediaElements中的一些也会空白。

是否可以在单独的WindowUserControl或单独的Panel中显示已经运行或作为子控件添加的CanvasGrid的实例{{1}}。

2 个答案:

答案 0 :(得分:1)

使用多个MediaElements存在已知限制。我们不建议您see herehere

我建议您尝试使用WPF MediaKitDirectShowNet库。

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