Treeview - 添加图像文件

时间:2014-02-22 22:22:39

标签: c# wpf colors treeview jpeg

我有代码,我需要添加到树视图(图像文件)或图像文件高亮其他颜色。你有什么想法 ?我希望得到一切建议。我正在添加示例下载文件夹,其中我有一些jpeg,一些avi等我需要其他颜色的图像或只添加jpeg,png和其他图像文件。

   System.Windows.Forms.FolderBrowserDialog dlg = new System.Windows.Forms.FolderBrowserDialog();
    Image img = new Image();
    public MainWindow()
     {
         InitializeComponent();

     }



    private void button2_Click(object sender, EventArgs e)
    {


        dlg.Description = "Vyberte složku, kterou přidat";

        if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            txtbox1.Text = dlg.SelectedPath;
            ListDirectory(treeView1, dlg.SelectedPath);
        }

    }

    private void btn3_Click(object sender, RoutedEventArgs e)
    {
        TreeViewItem SelectedTreeViewItem = treeView1.SelectedItem as TreeViewItem;
        string FileName = "";

        if (SelectedTreeViewItem != null)
        {
            FileName = SelectedTreeViewItem.Header.ToString(); 
        }


        {
            canvas1.Children.Remove(img);

            img.Source = new BitmapImage(new Uri(dlg.SelectedPath + "\\" + FileName));
            img.Width = 250;
            img.Height = 185;
            canvas1.Children.Add(img);


        }



    }

     private void btn4_Click(object sender, RoutedEventArgs e)
     {

         canvas1.Children.Remove(img);
     }

     private void ListDirectory(TreeView treeView, string path)
    {
        treeView.Items.Clear();
        var rootDirectoryInfo = new DirectoryInfo(path);
        treeView.Items.Add(CreateDirectoryNode(rootDirectoryInfo));
    }

    private static TreeViewItem CreateDirectoryNode(DirectoryInfo directoryInfo)
    {
        var directoryNode = new TreeViewItem { Header = directoryInfo.Name };
        foreach (var directory in directoryInfo.GetDirectories())
            directoryNode.Items.Add(CreateDirectoryNode(directory));



        foreach (var file in directoryInfo.GetFiles())
            directoryNode.Items.Add(new TreeViewItem { Header = file.Name});

        return directoryNode;

    }`

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ过滤适当的文件:

private static TreeViewItem CreateDirectoryNode(DirectoryInfo directoryInfo)
{
    var directoryNode = new TreeViewItem { Header = directoryInfo.Name };
    foreach (var directory in directoryInfo.GetDirectories())
        directoryNode.Items.Add(CreateDirectoryNode(directory));

    foreach (var file in directoryInfo.GetFiles().Where(x=> x.Extension == ".jpg" || x.Extension == ".png"))
        directoryNode.Items.Add(new TreeViewItem { Header = file.Name });

    return directoryNode;

}

以下代码负责仅选择图片:

directoryInfo.GetFiles().Where(x=> x.Extension == ".jpg" || x.Extension == ".png")