Così ho una vista a fogli mobili per visualizzare un articolo e in questa vista a fogli mobili ho un lettore multimediale da Microsoft Player Framework. Ora voglio essere in grado di accedere a questo lettore multimediale dal codice.WinRT XAML Trova il controllo all'interno del modello FlipView Item
Tuttavia, ogni singolo esempio che ho trovato ha utilizzato FindName nel DataTemplate che WinRT non sembra avere.
ho cercato
var flipViewItem = this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);
e quindi utilizzando il VisualTreeHelper per trovare il Media Player, ma flipViewItem
è sempre nullo.
Ho provato i dati che legano il lettore video - ma questo fa sì che tutti i video negli elementi della vista a fogli mobili vengano riprodotti simultaneamente.
Qualcuno può aiutare?
EDIT
Quindi questo è il mio XAML che sto usando:
<FlipView
x:Name="flipView"
AutomationProperties.AutomationId="ItemsFlipView"
AutomationProperties.Name="Item Details"
TabIndex="1"
Margin="0,127,0,10"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}" Grid.RowSpan="2">
<FlipView.ItemTemplate>
<DataTemplate>
<UserControl Loaded="StartLayoutUpdates" Unloaded="StopLayoutUpdates">
<ScrollViewer x:Name="scrollViewer" Style="{StaticResource HorizontalScrollViewerStyle}" Grid.Row="1">
<common:RichTextColumns x:Name="richTextColumns" Margin="117,0,117,47">
<RichTextBlock x:Name="richTextBlock" Width="560" Style="{StaticResource ItemRichTextStyle}">
<Paragraph>
<Run FontSize="26.667" FontWeight="Light" Text="{Binding Title}"/>
</Paragraph>
<Paragraph LineStackingStrategy="MaxHeight">
<InlineUIContainer>
<Grid Width="560" Height="340" Margin="0,20,0,10">
<Grid.Background>
<ImageBrush ImageSource="{Binding Image}" Stretch="UniformToFill" />
</Grid.Background>
<Image x:Name="OverlayImage" Visibility="{Binding ShowVideo, Converter={StaticResource booleanToVisibilityConverter}}" Source="Assets/play-icon.png"/>
<mmppf:MediaPlayer x:Name="ArticleVideo" Width="560" Height="340" />
</Grid>
</InlineUIContainer>
ho cercato di legame al lettore multimediale:
<mmppf:MediaPlayer x:Name="ArticleVideo" Source="{Binding VideoPath}" Width="560" Height="340" PosterSource="{Binding Image}" AutoPlay="False" />
Tuttavia, quando faccio questo e imposta i video per la riproduzione automatica - sono tutti in automatico. Se premo manualmente play sul controllo, ricevo un'eccezione di riferimento null su System.ComponentModel.PropertyChangedEventHandler.Invoke. Il lettore multimediale funziona bene al di fuori del modello.
Ciò che è confuso, è che so che cosa voglio è possibile. L'app SkyNews per Windows 8 fa esattamente ciò che voglio fare (aggiungi un video a un modello di oggetto vista flip). Ho dato uno sguardo a c: \ ProgramFiles \ WindowsApps, quindi guarda come è apparso il loro xaml è quasi uguale al mio - senza alcuna associazione di dati sul media player. L'unica differenza è che hanno x: ConnectionId sull'usercontrol e la griglia contenente il video player nel modello. Non so cosa x: ConnectionId fa - ma è possibile che qualcuno lo usi per accedere ai controlli dal loro codice?
Hai provato a renderlo una risorsa e quindi a utilizzare "FrameworkElement.FindResource'? – mydogisbox
Se si sposta MediaPlayer in '' come posso quindi posizionarlo nella posizione corretta sulla mia pagina? –
Terry
Ah, mi dispiace. Ho frainteso quello che era il componente. – mydogisbox