private void GetFiles(TreeViewItemImage item) { List <string> files = new List <string>(); string folderName = (string)item.Tag; try { var dirs = Directory.GetFiles(folderName); var images = GetImages(folderName); if (images.Count > 0) { files.AddRange(images); } } catch (Exception) { CollapseAll(); } files.ForEach(directoryPath => { TreeViewItemImage subItem = new TreeViewItemImage() { Header = GetPath(directoryPath), Tag = directoryPath, }; item.AddItem(subItem); }); }
public TreeViewItemHeader(object obj, string path, TreeViewItemImage image) : this(null, image) { textView.SetBinding(TextBlock.TextProperty, new Binding(path) { Source = obj, Mode = BindingMode.OneWay }); }
private void Expand(object sender) { TreeViewItemImage treeViewItem = (TreeViewItemImage)sender; if (treeViewItem.Items.Count != 1 || treeViewItem.Items[0] != null) { return; } treeViewItem.Items.Clear(); string folderName = (string)treeViewItem.Tag; var directories = new List <string>(); try { List <string> dirs = Directory.GetDirectories(folderName).Where(x => { DirectoryInfo di = new DirectoryInfo(x); return(!di.Attributes.HasFlag(FileAttributes.ReparsePoint) && !di.Attributes.HasFlag(FileAttributes.Hidden)); } ).ToList(); if (dirs.Count > 0) { directories.AddRange(dirs); } } catch (Exception) { CollapseAll(); } directories.ForEach(directoryPath => { TreeViewItemImage subItem = new TreeViewItemImage() { Header = GetPath(directoryPath), Tag = directoryPath }; if (Path.GetExtension(subItem.Tag.ToString()) == "") { if (!CheckIfEmpty(subItem.Tag.ToString())) { subItem.Items.Add(null); } } subItem.Expanded += Folder_Expanded; treeViewItem.AddItem(subItem); }); GetFiles(treeViewItem); }
public static ImageSource GetImageSource(TreeViewItemImage image) { switch (image) { case TreeViewItemImage.Graph: return(Startup.Application.Resources["IconGraphSmall"] as ImageSource); case TreeViewItemImage.Node: return(Startup.Application.Resources["IconNodeSmall"] as ImageSource); case TreeViewItemImage.Input: return(Startup.Application.Resources["IconInputSmall"] as ImageSource); case TreeViewItemImage.Output: return(Startup.Application.Resources["IconOutputSmall"] as ImageSource); case TreeViewItemImage.Folder: return(Startup.Application.Resources["IconOpenSmall"] as ImageSource); } return(null); }
private void FileDragFromWindows(DragEventArgs obj) { string[] files = (string[])obj.Data.GetData(System.Windows.DataFormats.FileDrop); ObservableCollection <Image> temp = new ObservableCollection <Image>(); if (files == null) { TreeViewItemImage tr = (TreeViewItemImage)obj.Data.GetData("ImageViewer.Model.TreeViewItemImage"); if (Path.GetExtension(tr.Header.ToString()) != String.Empty) { Image image = new Image(); image.FilePath = tr.Tag.ToString(); image.FileName = System.Text.RegularExpressions.Regex.Match(tr.Tag.ToString(), @".*\\([^\\]+$)").Groups[1].Value; image.Extension = Path.GetExtension(tr.Header.ToString()); temp.Add(image); _aggregator.GetEvent <SendImage>().Publish(temp); } else { foreach (string path in Directory.GetFiles(tr.Tag.ToString())) { LoadFiles(temp, path); } } } else { ObservableCollection <Image> tempOfSingleImages = new ObservableCollection <Image>(); foreach (var s in (string[])obj.Data.GetData(DataFormats.FileDrop, false)) { if (Directory.Exists(s)) { temp = new ObservableCollection <Image>(); foreach (string path in Directory.GetFiles(s)) { LoadFiles(temp, path.ToString()); } } else { LoadFiles(tempOfSingleImages, s.ToString()); } } } NotifyPropertyChanged("TiledViewRows"); }
private void TreeViewItemImage_MouseMove(object sender, MouseEventArgs e) { try { TreeViewItemImage tr = sender as TreeViewItemImage; if (tr != null && e.LeftButton == MouseButtonState.Pressed) { var hit = e.OriginalSource as DependencyObject; while (hit != null && !(hit is TreeViewItemImage)) { hit = VisualTreeHelper.GetParent(hit); } DragDrop.DoDragDrop(tr, hit, DragDropEffects.Copy); } } catch (Exception) { return; } }
public TreeViewItemHeader(string title, TreeViewItemImage image) { imageView = new Image(); textView = new TextBlock(); imageType = image; imageView.Margin = new Thickness(0, 0, 4, 0); imageView.Width = 20; imageView.Height = 20; imageView.Source = TreeViewItemImageSource.GetImageSource(image); textView.VerticalAlignment = VerticalAlignment.Center; textView.TextWrapping = TextWrapping.Wrap; textView.Foreground = Brushes.White; textView.Margin = new Thickness(4); textView.Text = title; HorizontalAlignment = HorizontalAlignment.Stretch; VerticalAlignment = VerticalAlignment.Center; Orientation = Orientation.Horizontal; Children.Add(imageView); Children.Add(textView); }
private void FileExplorer_Loaded(object sender, RoutedEventArgs e) { DriveInfo[] logicalDrives = DriveInfo.GetDrives().Where(x => x.DriveType != DriveType.CDRom).ToArray(); foreach (var drive in Directory.GetLogicalDrives()) { var item = new TreeViewItemImage() { Header = drive, Tag = drive, ImageSource = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/DriveIcon.png", UriKind.Absolute)) }; if (!CheckIfEmpty(item.Tag.ToString())) { item.Items.Add(null); } item.Expanded += Folder_Expanded; FolderTreeView.Items.Add(item); } String path; TreeViewItemImage specialItem; path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); specialItem = new TreeViewItemImage() { Header = "Desktop", Tag = path, ImageSource = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/MyComputerIcon.png", UriKind.Absolute)) }; if (!CheckIfEmpty(specialItem.Tag.ToString())) { specialItem.Items.Add(null); } specialItem.Expanded += Folder_Expanded; FolderTreeView.Items.Add(specialItem); path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); specialItem = new TreeViewItemImage() { Header = "My Documents", Tag = path, ImageSource = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/FolderIcon.png", UriKind.Absolute)) }; if (!CheckIfEmpty(specialItem.Tag.ToString())) { specialItem.Items.Add(null); } specialItem.Expanded += Folder_Expanded; FolderTreeView.Items.Add(specialItem); path = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures); specialItem = new TreeViewItemImage() { Header = "My Pictures", Tag = path, ImageSource = new BitmapImage(new Uri("pack://application:,,,/Resources/Images/FolderIcon.png", UriKind.Absolute)) }; if (!CheckIfEmpty(specialItem.Tag.ToString())) { specialItem.Items.Add(null); } specialItem.Expanded += Folder_Expanded; FolderTreeView.Items.Add(specialItem); }