【问题标题】:how to change the media element source according to listbox item如何根据列表框项更改媒体元素源
【发布时间】:2012-03-21 17:01:17
【问题描述】:

我正在使用 wpf 媒体元素。我想根据列表框项目更改媒体元素源。

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

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

请帮助我。提前谢谢....

我的 .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);
}

【问题讨论】:

    标签: c# wpf


    【解决方案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); 
    }
    

    【讨论】:

    • 我试过了,得到以下错误。“无效的 URI:无法确定 URI 的格式。”
    • 那么,您的 ListBox 包含哪些项目?它们是有效的 URI 吗?也许您会在填充 ListBox 的位置显示一些代码。
    • 这是列表框
    • 这已经在您的问题中了。我的意思是您将项目添加到 ListBox 的位置。你要添加 ListBoxItems 吗?然后查看我编辑的答案。
    • 我试过你编辑的代码。错误是,“对象引用未设置为对象的实例”。
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2022-10-26
    • 2012-02-11
    相关资源
    最近更新 更多