访问列表框wp7中的mediaelement
本文关键字:中的 mediaelement wp7 列表 访问 | 更新日期: 2023-09-27 18:04:29
我在ListBox中有一个MediaElement。我如何获得访问"audiop_Copy"按钮"播放/暂停"?
<local:TypeTemplateSelector.WithAudio>
<DataTemplate>
<Grid Margin="0,5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="1">
<TextBlock ... />
<StackPanel Height="50" Orientation="Horizontal" Margin="5,0,4,0" MinHeight="50">
</TextBlock>
<Button Click="PlayMedia" Content="Play" />
<Button Click="PauseMedia" Content="Pause" />
</StackPanel>
<MediaElement Name="audiop_Copy" Source="{Binding audioUri}" Stretch="None" HorizontalAlignment="Left" AutoPlay="False"/>
</StackPanel>
</Grid>
</DataTemplate>
</local:TypeTemplateSelector.WithAudio>
有两种方法可以当场完成(可能还有更多)。你将需要一个指针指向你的按钮,无论如何点击:
- [困难,不灵活,脆弱]在按钮单击事件处理程序使用VisualTreeHelper类导航可视化树并找到元素。使用sender作为起始点
-
[更好的解决方案]使用Tag属性和绑定。
<Button Click="PauseMedia" Content="Pause" Tag={Binding ElementName=audiop_Copy} />
在handler中是这样的:
private void PauseMedia(object sender, RoutedEventArgs e)
{
var me = ((FrameworkElement) sender).Tag as MediaElement;
}