private TreeViewItem CreateTreeItem(Shell32.FolderItem folderItem) { if (folderItem == null) { throw new ArgumentNullException("folderItem"); } TreeViewItem tvi = new TreeViewItem(); //tvi.Header = folderItem.Name; tvi.Tag = folderItem; StackPanel panel = new StackPanel(); panel.Orientation = Orientation.Horizontal; panel.Margin = new Thickness(1); tvi.Header = panel; Image image = new Image(); image.Source = ExtractIcons.GetIcon(folderItem.Path, false, (folderItem.Type == "3½-Inch Floppy Disk" || folderItem.Type == "Floppy Disk Drive")); image.Margin = new Thickness(0, 0, 4, 0); TextBlock text = new TextBlock(); text.VerticalAlignment = VerticalAlignment.Center; text.Text = folderItem.Name; panel.Children.Add(image); panel.Children.Add(text); return(tvi); }
private void ChangeIcon(TreeViewItem tvi, Boolean open) { Shell32.FolderItem folderItem = (Shell32.FolderItem)tvi.Tag; StackPanel panel = (StackPanel)tvi.Header; Image image = new Image(); image.Source = ExtractIcons.GetIcon(folderItem.Path, open, false); image.Margin = new Thickness(0, 0, 4, 0); panel.Children.RemoveAt(0); panel.Children.Insert(0, image); }