我有代码,我需要添加到树视图(图像文件)或图像文件高亮其他颜色。你有什么想法 ?我希望得到一切建议。我正在添加示例下载文件夹,其中我有一些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;
}`
答案 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")