Wie auf ein Steuerelement in der Daten-Vorlage in C# Metro UI in der code-behind
Habe ich ein MediaElement, das sich innerhalb des datatemplate von flipview, ich möchte auf diesem MediaElement mit der Bezeichnung "video" in der code-behind, so dass ich zuordnen kann, Eigenschaften wie play, pause, etc, um über die Tasten
hier ist der code von dem, was ich versuche zu tun :
<FlipView
x:Name="flipView"
AutomationProperties.AutomationId="ItemsFlipView"
AutomationProperties.Name="Item Details"
TabIndex="1"
Grid.RowSpan="2"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}">
<FlipView.ItemContainerStyle>
<Style TargetType="FlipViewItem">
<Setter Property="Margin" Value="0,137,0,0"/>
</Style>
</FlipView.ItemContainerStyle>
<FlipView.ItemTemplate>
<DataTemplate>
<UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
<ScrollViewer x:Name="scrollViewer" Style="{StaticResource VerticalScrollViewerStyle}" Grid.Row="1">
<Grid Margin="120,0,20,20">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="400" />
<ColumnDefinition Width="40" />
<ColumnDefinition Width="360" />
<ColumnDefinition Width="40" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Border BorderBrush="Black" BorderThickness="1" Width="350" HorizontalAlignment="Left" Grid.Row="0">
<MediaElement x:Name="Video" AutomationProperties.Name="Video" Source="/Assets/Big_Buck_Bunny.mp4" HorizontalAlignment="Center" VerticalAlignment="Stretch" Height="250" Width="350" AutoPlay="True" IsLooping="True" />
</Border>
<Border BorderBrush="Black" BorderThickness="1" Height="65" Width="350" HorizontalAlignment="Left" Grid.Row="1">
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button x:Name="playButton" Margin="0,0" Click="playButton_Click" Style="{StaticResource PlayAppBarButtonStyle}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
<Button x:Name="pauseButton" Margin="0,0" Click="pauseButton_Click" Style="{StaticResource PauseAppBarButtonStyle}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</StackPanel>
</Border>
</Grid>
</ScrollViewer>
</UserControl>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
Wie kann ich erreichen das gedacht ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie Folgendes:
Dann rufen Sie es von der play /pause-Taste-Taste:
Eine Verwandte blog-post zu dem Thema
Schrieb ich einen blog-Artikel zu genau diesem Thema vor etwa einem Jahr. Vielleicht wird es helfen Sie: http://blog.jerrynixon.com/2012/09/how-to-access-named-control-inside-xaml.html
Den Kern ist dies. Sie müssen analysieren, durch die visuelle Struktur, um alle Elemente, und dann können Sie so etwas wie LINQ filtern Sie die Ergebnisse und erhalten Ihre Objekte.
Erweiterte ich Jerry ' s-Lösung, um eine flexiblere und bessere performance-Lösung in der immer nur die gewünschten Steuerelemente und erstellen nicht vermittelten Listen während der rekursiven Aufrufe.
Können Sie einfach verwenden wie, dass, um die Kontrolle:
Dafür sollten Sie auch die folgende Funktion AllChildren: