这是我的代码。我在右上角看到了视频,控件本身所在的位置,但主网格背景是空的。它应该是通过VisualBrush拍摄视频的,对吧?我在谷歌上搜索了几个样本,它们都使用相同的技巧,但它不起作用……
我还尝试将一些控件放在控件的顶部,但没有显示出来,因为我假设它在内部使用WinForms控件,这是最顶部的控件。
那么我如何获得这段视频作为背景呢?
<Grid>
<vlc:VlcControl x:Name="myVlcControl" Width="100" Height="100" HorizontalAlignment="Right" VerticalAlignment="Top" />
<Grid>
<Grid.Background>
<VisualBrush Stretch="Uniform">
<VisualBrush.Visual>
<Image Source="{Binding VideoSource, ElementName=myVlcControl}" />
</VisualBrush.Visual>
</VisualBrush >
</Grid.Background>
</Grid>发布于 2015-06-08 19:42:16
MediaElement可以很好地支持RTSP,但它可能不支持您正在尝试使用的编码/容器。下面生成一个有效的流MediaElement,并使用VisualBrush使用MediaElement绘制网格的背景:
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<MediaElement x:Name="MyPlayer"
Width="640"
Height="480"
LoadedBehavior="Play"
Source="rtsp://granton.ucs.ed.ac.uk/domsdemo/v2003-1.wmv" />
<Grid Grid.Row="1"
Width="320"
Height="240">
<Grid.Background>
<VisualBrush Stretch="Uniform" Visual="{Binding ElementName=MyPlayer}" />
</Grid.Background>
</Grid>
</Grid>发布于 2019-03-06 23:04:42
@Kolorowezworki制作了Airhack control来解决这个问题。
示例:
<airhack:AirControl DataContext="{Binding}">
<airhack:AirControl.Front>
<Image Source="{Binding VideoSource, ElementName=myVlcControl}" />
</airhack:AirControl.Front>
<airhack:AirControl.Back>
<vlc:VlcControl x:Name="myVlcControl" Width="100" Height="100" HorizontalAlignment="Right" VerticalAlignment="Top" />
</airhack:AirControl.Back>
</airhack:AirControl>注意:默认情况下,AirControl不支持DataContext Binding,为了解决这个问题,派生或复制存储库,并通过传递“airhack”窗口来实现DataContext支持。
示例:
public AirControl()
{
InitializeComponent();
alpha = new Alpha(this);
alpha.DataContext = DataContext;
DataContextChanged += (sender, args) => alpha.DataContext = DataContext;
}https://stackoverflow.com/questions/30591265
复制相似问题