因此,我有翻轉視圖來顯示文章,並在此翻轉視圖中,我有一個來自Microsoft Player Framework的媒體播放器。現在我想從代碼中訪問這個媒體播放器。WinRT XAML在FlipView內部查找控制項目模板
但是,我發現的每個示例都使用了WinRT沒有看到的DataTemplate上的FindName。
我已經試過
var flipViewItem = this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);
,然後使用VisualTreeHelper找到媒體播放器,但flipViewItem
總是空。
我試過數據綁定視頻播放器 - 但這會導致翻轉視圖項目中的所有視頻同時播放。
有人可以幫忙嗎?
編輯
所以這是我的XAML我使用:
<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>
我曾嘗試結合到媒體播放器:
<mmppf:MediaPlayer x:Name="ArticleVideo" Source="{Binding VideoPath}" Width="560" Height="340" PosterSource="{Binding Image}" AutoPlay="False" />
然而,當我這樣做並設置視頻自動播放 - 他們都自動播放。如果我手動按下播放控件上,我收到System.ComponentModel.PropertyChangedEventHandler.Invoke空引用異常。媒體播放器可以在模板外正常工作。
什麼令人困惑,是我知道我想要什麼是可能的。適用於Windows 8的SkyNews應用程序正是我想要做的(將視頻添加到翻轉視圖項目模板)。我看了一下c:\ ProgramFiles \ WindowsApps,看看它的xaml看起來與我的幾乎一樣 - 沒有數據綁定在媒體播放器上。唯一的區別是它們在用戶控件上具有x:ConnectionId,並且在模板中包含視頻播放器。我不知道x:ConnectionId是幹什麼的 - 但是有可能他們是使用它從代碼中訪問控件的人嗎?
你試過把它作爲資源,然後使用'FrameworkElement.FindResource'? – mydogisbox 2012-08-08 19:21:44
如果我將MediaPlayer移動到「」中,那麼我怎樣才能將它放在我的頁面的正確位置上? –
Terry
2012-08-08 20:22:52
啊,對不起。我誤解了組件是什麼。 – mydogisbox 2012-08-08 20:37:42