En este ejemplo reproduciremos un video y mostraremos su reflejo. Es un ejemplo muy simple que utiliza el mismo codigo para reflejar una imagen.
Código XAML
<Window
x:Class="VideoReflejo"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="VideoReflejo"
Height="438"
Width="399"
WindowStartupLocation="CenterScreen">
<Grid>
<StackPanel
<Border BorderBrush="White" BorderThickness="5" HorizontalAlignment="Center" VerticalAlignment="Center">
<!--Para poder hacer que el
video tenga una desviacion de 10º-->
<Border.RenderTransform>
<SkewTransform CenterX="0" CenterY="0" AngleX="0" AngleY="10"/>
</Border.RenderTransform>
<!-- Visor multimedia para la
celda superior -->
<MediaElement x:Name="ReproductorVideo" Grid.Row="0" Grid.Column="0" Source="Trailers\Pelicula" Volume="0" LoadedBehavior="Play" Width="150" Height="150"/>
</Border>
<Border Width="145" Height="175" BorderBrush="White" BorderThickness="1">
<!--Hacemos que el video se
desvie 10º el angulo y. Pero tambien desviaremos el angulo x
para que no salga recta la imagen-->
<Border.RenderTransform>
<SkewTransform CenterX="0" CenterY="0" AngleX="170" AngleY="10"/>
</Border.RenderTransform>
<!--Para poder hacer el
reflejo asociamos el VisualBrush con el video-->
<Border.Background>
<VisualBrush Visual="{Binding
ElementName=ReproductorVideo}">
<VisualBrush.Transform>
<ScaleTransform ScaleX="1" ScaleY="-1" CenterX="190" CenterY="75"></ScaleTransform>
</VisualBrush.Transform>
</VisualBrush>
</Border.Background>
<!--Para que sea opaco el
reflejo-->
<Border.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="Black"></GradientStop>
<GradientStop Offset="0.6" Color="Transparent"></GradientStop>
</LinearGradientBrush>
</Border.OpacityMask>
</Border>
</StackPanel>
</Grid>
</Window>
No hay comentarios:
Publicar un comentario