处理列表框中文件的 WPF

本文关键字:WPF 文件 中文 列表 处理 | 更新日期: 2023-09-27 18:34:32

我打算创建一个.mp4列表框,从中可以播放我选择的.mp4。我已经创建了.mp4播放器(通过拖放(,并且正在处理如何处理listBox的问题。

        private void button1_Click(object sender, RoutedEventArgs e)
    {
        var dialog = new System.Windows.Forms.FolderBrowserDialog();
        System.Windows.Forms.DialogResult result = dialog.ShowDialog();
        try
        {
            DirectoryInfo dr = new DirectoryInfo(dialog.SelectedPath.ToString());
            if (result == FORMS.DialogResult.OK)
            {
                foreach (FileInfo f in dr.GetFiles())
                {
                    listBox1.Items.Add(f);
                }
            }
        }
        catch { }
    }

这仅使我能够获取要在listBox中显示的所有.mp4文件(来自所选文件夹(,如何设法将对象从列表框拖到.mp4播放器(已经启用了拖放(。

处理列表框中文件的 WPF

您可以使用

DragDrop.DoDragDrop方法执行此操作。

例:

    <ListBox SelectionChanged="Selector_OnSelectionChanged">
        <ListBoxItem>X</ListBoxItem>
        <ListBoxItem>Y</ListBoxItem>
        <ListBoxItem>Z</ListBoxItem>
    </ListBox>

在代码中

private void Selector_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
     ListBox listbox = sender as ListBox;
     DragDrop.DoDragDrop(listbox, listbox.SelectedItem, DragDropEffects.None);
}

可能是在您的mp4播放器中,您需要实现的不仅仅是启用拖放(例如提取拖动的项目并播放它......

您可以在 MSDN 拖放概述页上找到有关的详细信息。

希望这有帮助

:)非常感谢,这真的很有帮助!你对.mp4球员的看法是对的,他确实需要确定对他的拖累,但我只是不知道怎么做。我确实设法通过直接从您的计算机(例如桌面(拖动.mp4来编写代码来播放.mp4,这是代码:

        private void Grid_Drop(object sender, DragEventArgs e)
    {
        string filename = (string)((DataObject)e.Data).GetFileDropList()[0];
        mediaElement1.Source =new Uri(filename);
        mediaElement1.LoadedBehavior = MediaState.Manual;
        mediaElement1.UnloadedBehavior = MediaState.Manual;
        mediaElement1.Volume = (double)slider_vol.Value;
        mediaElement1.Play();
    }

该代码还有其他附加组件,但它们并不重要。我应该在播放器的"播放"按钮上使用拖放中的什么功能?我如何获取文件名以实际处理该文件?谢谢!