如何根据列表框项更改媒体元素源

时间:2012-03-21 07:28:37

标签: c# wpf

我正在使用wpf media element.i想要根据列表框项更改媒体元素源。

我在点击下一个按钮时创建了下一个按钮,列表框项目已更改为下一个项目。我不知道如何在单击下一个按钮时将媒体元素源更改为下一个列表框项目。

任何人都可以对此有所了解。

请事先帮助我。谢谢......

我的.xaml文件......

<MediaElement Margin="7,29,80,6" Name="mediaElement1" LoadedBehavior="Manual" 
    AllowDrop="True" MediaOpened="mediaElement1_MediaOpened" 

  Grid.IsSharedSizeScope="False" ScrubbingEnabled="True" IsEnabled="True"  
       Stretch="Fill" Drop="mediaElement1_Drop" ClipToBounds="False" 

 Visibility="Visible" OpacityMask="DarkRed" BufferingStarted="btn_play_click" 
  MediaEnded="mediaElement1_MediaEnded"  

  MouseLeftButtonUp="mediaElement1_MouseLeftButtonUp" Grid.Row="1" />


  <ListBox Margin="0,31,0,18" Name="listBox1" HorizontalAlignment="Right" Width="74"  
  Grid.Row="1" MouseDoubleClick="listBox1_MouseDoubleClick" SelectedIndex="0" 
   SelectionMode="Multiple" AllowDrop="True"> </ListBox> 

.cs文件中的下一个按钮代码是

private void btn_next_Click(object sender, RoutedEventArgs e){   
  listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
  mediaElement1.Source = new System.Uri(listBox1.SelectedValue as string);
}

1 个答案:

答案 0 :(得分:1)

使用SelectedItem代替SelectedValue,或者设置SelectedValuePath

private void btn_next_Click(object sender, RoutedEventArgs e)
{    
    listBox1.SelectedIndex = listBox1.SelectedIndex + 1; 
    mediaElement1.Source = new System.Uri(listBox1.SelectedItem as string); 
}

如果您将ListBoxItems添加到ListBox,则必须获取Content

private void btn_next_Click(object sender, RoutedEventArgs e)
{    
    listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
    ListBoxItem item = listBox1.SelectedItem as ListBoxItem;
    mediaElement1.Source = new System.Uri(item.Content as string); 
}