तो मेरे पास एक लेख प्रदर्शित करने के लिए एक फ्लिप दृश्य है और इस फ्लिप व्यू में मेरे पास Microsoft Player Framework से मीडिया प्लेयर है। अब मैं कोड से इस मीडिया प्लेयर तक पहुंचने में सक्षम होना चाहता हूं।WinRT XAML FlipView आइटम टेम्पलेट के अंदर नियंत्रण पाएं
हालांकि, मैंने पाया है कि हर एक उदाहरण ने डेटा टेम्पलेट पर FindName का उपयोग किया है जो WinRT को नहीं देखा गया है।
मैं
var flipViewItem = this.flipView.ItemContainerGenerator.ContainerFromIndex(flipView.SelectedIndex);
की कोशिश की है और उसके बाद VisualTreeHelper का उपयोग कर मीडिया प्लेयर को खोजने के लिए, लेकिन flipViewItem
हमेशा रिक्त है।
मैंने वीडियो प्लेयर को बाध्यकारी डेटा की कोशिश की - लेकिन यह फ्लिप व्यू आइटम्स में सभी वीडियो एक साथ खेलने का कारण बनता है।
क्या कोई मदद कर सकता है?
<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" />
हालांकि, जब मैं ऐसा
संपादित
तो यह मेरी XAML है कि मैं का उपयोग कर रहा है और वीडियो को ऑटोप्ले पर सेट करें - वे सभी ऑटोप्ले हैं। यदि मैं मैन्युअल रूप से नियंत्रण पर खेलता हूं, तो मुझे System.ComponentModel.PropertyChangedEventHandler.Invoke पर एक शून्य संदर्भ अपवाद प्राप्त होता है। मीडिया प्लेयर टेम्पलेट के बाहर ठीक काम करता है।
भ्रमित करने वाला क्या है, क्या मुझे पता है कि मैं क्या करना चाहता हूं। विंडोज 8 के लिए स्काईन्यूज ऐप ठीक वही करता है जो मैं करना चाहता हूं (एक फ्लिप व्यू आइटम टेम्पलेट में एक वीडियो जोड़ें)। मैंने c: \ ProgramFiles \ WindowsApps में एक नज़र डाली थी, इसलिए देखें कि उनका xaml कैसा दिख रहा है, यह लगभग मेरे जैसा ही है - मीडिया प्लेयर पर कोई डेटा बाध्यकारी नहीं है। एकमात्र अंतर यह है कि उनके पास एक्स है: उपयोगकर्ता नियंत्रण पर कनेक्शन आईडी और टेम्पलेट में वीडियो प्लेयर युक्त ग्रिड। मुझे नहीं पता कि एक्स: कनेक्शन आईडी करता है - लेकिन क्या यह संभव है कि वे किसी का उपयोग कर रहे हैं ताकि उनके कोड से नियंत्रण प्राप्त हो सके?
क्या आपने इसे संसाधन बनाने और फिर 'FrameworkElement.FindResource' का उपयोग करने का प्रयास किया है? – mydogisbox
यदि मैं मीडियाप्लेयर को '<पेज। स्रोतों' में ले जाता हूं, तो मैं इसे अपने पृष्ठ पर सही स्थिति में कैसे रखूं? – Terry
आह, क्षमा करें। मैंने गलत समझा कि घटक क्या था। – mydogisbox