2017-01-04 8 views
0

zu spielen Ich versuche, ein Video auf einem neuen Hintergrundrahmen beim Klicken oder Klopfen des Bildes nach dem Video zu spielen, sollte der alte Rahmen wieder sichtbar sein. Jede Hilfe würde geschätzt werden.Ich versuche, Video auf einem neuen Hintergrundbild in uwp

XAML

<Grid> 
       <Grid.Background> 
       <ImageBrush ImageSource="Images\1280x800 final file.png"/> 
       </Grid.Background> 
       <MediaElement x:Name="pSong" Margin="30,30,30,30" 
                    RelativePanel.AlignHorizontalCenterWithPanel="True" 
                     Canvas.ZIndex="1" 
                     MediaEnded="Mend" /> 
       <ScrollViewer VerticalScrollBarVisibility="Auto"> 
       <StackPanel x:Name="LOfRhymes" BorderBrush="Black" BorderThickness="0"> 
      <RelativePanel x:Name="TTLS" Height="90px" BorderBrush="Black" 
          BorderThickness="1" Tapped="TTLStap">         
       <TextBlock Foreground="Blue" FontSize="14" 
          FontWeight="ExtraBold" 
          RelativePanel.AlignLeftWithPanel="True" 
          Margin="20,25" 
          Text="Rhymes"/> 
       <TextBlock Foreground="Black" FontSize="14"         
          RelativePanel.AlignBottomWithPanel="True" 
          Margin="20,15" 
          Text="Twinkle Twinkle Little Star"/> 
       <Image Source="images\01.jpg" 
         RelativePanel.AlignRightWithPanel="True" 
         Margin="0,10,80,0" 
         Width="100px" 
         Height="70px" 
         /> 
      </RelativePanel> 
     </StackPanel> 
    </ScrollViewer>            
</Grid> 

C# -Code

private void TTLStap(object sender, TappedRoutedEventArgs e) 
{ 
    pSong.Source = new Uri("ms-appx:///Videos/twinkle.mp4"); 
    pSong.AreTransportControlsEnabled = true;    
} 

Antwort

0

Wenn ich Ihr Problem richtig zu verstehen, sollte die Lösung einfach, wenn Sie die Reihenfolge der Elemente ändern und verwenden Visibility:

<Grid> 
       <Grid.Background> 
       <ImageBrush ImageSource="Images\1280x800 final file.png"/> 
       </Grid.Background> 
       <ScrollViewer VerticalScrollBarVisibility="Auto"> 
       <StackPanel x:Name="LOfRhymes" BorderBrush="Black" BorderThickness="0"> 
      <RelativePanel x:Name="TTLS" Height="90px" BorderBrush="Black" 
          BorderThickness="1" Tapped="TTLStap"> 
       <TextBlock Foreground="Blue" FontSize="14" 
          FontWeight="ExtraBold" 
          RelativePanel.AlignLeftWithPanel="True" 
          Margin="20,25" 
          Text="Rhymes"/> 
       <TextBlock Foreground="Black" FontSize="14" 
          RelativePanel.AlignBottomWithPanel="True" 
          Margin="20,15" 
          Text="Twinkle Twinkle Little Star"/> 
       <Image Source="images\01.jpg" 
         RelativePanel.AlignRightWithPanel="True" 
         Margin="0,10,80,0" 
         Width="100px" 
         Height="70px" 
         /> 
      </RelativePanel> 
     </StackPanel> 
    </ScrollViewer> 
    <MediaElement x:Name="pSong" Visibility="Collapsed" Margin="30,30,30,30" 
                RelativePanel.AlignHorizontalCenterWithPanel="True" 
                 MediaEnded="Mend" />            
</Grid> 

Beachten Sie, dass ich die MediaElement nach derverschoben habe. Die Elemente, die später im Baum definiert werden, werden über denen angezeigt, die vor ihnen stehen. Außerdem entfernte ich die Canvas.ZIndex, die usless ist, es sei denn, das Element befindet sich in einem Canvas.

Momentan ist die MediaElement nicht sichtbar (ihre Visibility ist auf Collapsed eingestellt).

nun vom Fass auf dem Panel zeigen Sie das Video:

private void TTLStap(object sender, TappedRoutedEventArgs e) 
{ 
    pSong.Source = new Uri("ms-appx:///Videos/twinkle.mp4"); 
    pSong.AreTransportControlsEnabled = true; 
    //show the media element 
    pSong.Visibility = Visibility.Visible; 
} 

Und in der MediaEnded Handler Sie es wieder auszublenden.

public void Mend(object sender, RoutedEventArgs e) 
{ 
    pSong.Visibility = Visibility.Collapsed; 
} 
+0

sagte Sie richtig, aber meine Voraussetzung ist, dass, wenn jemand auf das Bild tippen sagen Stampf = „TTLStap“ ein neues Hintergrundbild geöffnet werden soll und Video zu spielen beginnt darüber auf seiner eigenen Platte bedeutet. – anuj

Verwandte Themen