2014-02-22 2 views
0

나는 코드가 있고 treeview (이미지 파일) 또는 이미지 파일 higlights를 다른 색상으로 추가해야합니다. 아이디어가 있습니까? 나는 모든 조언을 원할 것이다. 예를 들어 폴더 다운로드, 일부 JPEG, 일부 avi 등을 추가하고 있습니다. 다른 색상의 이미지가 필요하거나 jpeg, png 및 기타 이미지 파일 만 추가해야합니다.Treeview - 이미지 파일 추가

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; 

    }` 

답변

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") 
+0

대단히 감사합니다! – user3271748

관련 문제