资源简介
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ImageExplorer
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private BitmapImage bmi;
private string path;
public MainWindow()
{
InitializeComponent();
path = Environment.CurrentDirectory @"\image\";
GetImage();
}
private void GetImage()
{
string[] files = Directory.GetFiles(path);
foreach (string file in files)
{
lstImage.Items.Add(file);
}
}
private void lstImage_Drop(object sender, DragEventArgs e)
{
//仅支持文件的拖放
if (!e.Data.GetDataPresent(DataFormats.FileDrop))
{
return;
}
//获取拖拽的文件
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
//这里需要注意,由于程序既支持拖过来也支持拖过去,那么ListBox就也能接收自身拖拽过来的文件
//为了防止鼠标点击和拖拽的冲突,需要屏蔽从程序自身拖拽过来的文件
//这里判断文件是否从程序外部拖拽进来,也就是判断图片是否在工作目录下
if (files.Length > 0 && !files[0].StartsWith(path) &&
(e.AllowedEffects & DragDropEffects.Copy) == DragDropEffects.Copy)
{
e.Effects = DragDropEffects.Copy;
}
else
{
e.Effects = DragDropEffects.None;
}
foreach (string file in files)
{
try
{
//如果是从外部拖拽进来的图像,则复制该文件到工作目录下做备份
string destFile = path System.IO.Path.GetFileName(file);
switch (e.Effects)
{
case DragDropEffects.Copy:
File.Copy(file, destFile, false);
bmi = new BitmapImage(new Uri(destFile));
imgShow.Source = bmi;
lstImage.Items.Add(destFile);
break;
default:
break;
}
}
catch
{
MessageBox.Show("已存在此文件或导入了非图像文件!");
}
}
}
private void lstImage_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed && e.RightButton == MouseButtonState.Released)
{
bmi = new BitmapImage(new Uri(lstImage.SelectedItem.ToString()));
imgShow.Source = bmi;
}
}
private void lstImage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (lstImage.SelectedIndex > -1)
{
//只使用了Listbox单选功能
string[] files = new string[1];
files[0] = lstImage.SelectedItem.ToString();
DragDrop.DoDragDrop(lstImage, new DataObject(DataFormats.FileDrop, files), DragDropEffects.Copy | DragDropEffects.Move /* | DragDropEffects.Link */);
}
}
}
}
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace ImageExplorer
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private BitmapImage bmi;
private string path;
public MainWindow()
{
InitializeComponent();
path = Environment.CurrentDirectory @"\image\";
GetImage();
}
private void GetImage()
{
string[] files = Directory.GetFiles(path);
foreach (string file in files)
{
lstImage.Items.Add(file);
}
}
private void lstImage_Drop(object sender, DragEventArgs e)
{
//仅支持文件的拖放
if (!e.Data.GetDataPresent(DataFormats.FileDrop))
{
return;
}
//获取拖拽的文件
string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
//这里需要注意,由于程序既支持拖过来也支持拖过去,那么ListBox就也能接收自身拖拽过来的文件
//为了防止鼠标点击和拖拽的冲突,需要屏蔽从程序自身拖拽过来的文件
//这里判断文件是否从程序外部拖拽进来,也就是判断图片是否在工作目录下
if (files.Length > 0 && !files[0].StartsWith(path) &&
(e.AllowedEffects & DragDropEffects.Copy) == DragDropEffects.Copy)
{
e.Effects = DragDropEffects.Copy;
}
else
{
e.Effects = DragDropEffects.None;
}
foreach (string file in files)
{
try
{
//如果是从外部拖拽进来的图像,则复制该文件到工作目录下做备份
string destFile = path System.IO.Path.GetFileName(file);
switch (e.Effects)
{
case DragDropEffects.Copy:
File.Copy(file, destFile, false);
bmi = new BitmapImage(new Uri(destFile));
imgShow.Source = bmi;
lstImage.Items.Add(destFile);
break;
default:
break;
}
}
catch
{
MessageBox.Show("已存在此文件或导入了非图像文件!");
}
}
}
private void lstImage_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed && e.RightButton == MouseButtonState.Released)
{
bmi = new BitmapImage(new Uri(lstImage.SelectedItem.ToString()));
imgShow.Source = bmi;
}
}
private void lstImage_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (lstImage.SelectedIndex > -1)
{
//只使用了Listbox单选功能
string[] files = new string[1];
files[0] = lstImage.SelectedItem.ToString();
DragDrop.DoDragDrop(lstImage, new DataObject(DataFormats.FileDrop, files), DragDropEffects.Copy | DragDropEffects.Move /* | DragDropEffects.Link */);
}
}
}
}
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace ImageExplorer
{
///
/// App.xaml 的交互逻辑
///
public partial class App : Application
{
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 324 2013-05-28 14:44 ImageExplorer\ImageExplorer\App.xaml
文件 309 2013-05-28 14:44 ImageExplorer\ImageExplorer\App.xaml.cs
文件 11776 2013-05-29 14:51 ImageExplorer\ImageExplorer\bin\Debug\ImageExplorer.exe
文件 30208 2013-05-29 14:51 ImageExplorer\ImageExplorer\bin\Debug\ImageExplorer.pdb
文件 22472 2013-05-29 15:31 ImageExplorer\ImageExplorer\bin\Debug\ImageExplorer.vshost.exe
文件 490 2012-06-02 22:34 ImageExplorer\ImageExplorer\bin\Debug\ImageExplorer.vshost.exe.manifest
文件 4401 2013-05-28 15:14 ImageExplorer\ImageExplorer\ImageExplorer.csproj
文件 884 2013-05-29 16:05 ImageExplorer\ImageExplorer\MainWindow.xaml
文件 3967 2013-05-29 16:05 ImageExplorer\ImageExplorer\MainWindow.xaml.cs
文件 2319 2013-05-28 15:14 ImageExplorer\ImageExplorer\obj\Debug\App.g.cs
文件 2319 2013-05-28 15:58 ImageExplorer\ImageExplorer\obj\Debug\App.g.i.cs
文件 7035 2013-05-29 16:05 ImageExplorer\ImageExplorer\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 1009 2013-05-29 15:31 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.csproj.FileListAbsolute.txt
文件 917 2013-05-28 15:00 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.csproj.GenerateResource.Cache
文件 2501 2013-05-28 15:14 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.csprojResolveAssemblyReference.cache
文件 11776 2013-05-29 14:51 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.exe
文件 1465 2013-05-29 14:32 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.g.resources
文件 30208 2013-05-29 14:51 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.pdb
文件 180 2013-05-28 15:14 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer.Properties.Resources.resources
文件 269 2013-05-29 14:51 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer_MarkupCompile.cache
文件 268 2013-05-29 16:05 ImageExplorer\ImageExplorer\obj\Debug\ImageExplorer_MarkupCompile.i.cache
文件 1237 2013-05-29 14:32 ImageExplorer\ImageExplorer\obj\Debug\MainWindow.baml
文件 4659 2013-05-29 14:32 ImageExplorer\ImageExplorer\obj\Debug\MainWindow.g.cs
文件 4659 2013-05-29 15:32 ImageExplorer\ImageExplorer\obj\Debug\MainWindow.g.i.cs
文件 2179 2013-05-28 14:44 ImageExplorer\ImageExplorer\Properties\AssemblyInfo.cs
文件 2878 2013-05-28 14:44 ImageExplorer\ImageExplorer\Properties\Resources.Designer.cs
文件 5612 2013-05-28 14:44 ImageExplorer\ImageExplorer\Properties\Resources.resx
文件 1100 2013-05-28 14:44 ImageExplorer\ImageExplorer\Properties\Settings.Designer.cs
文件 201 2013-05-28 14:44 ImageExplorer\ImageExplorer\Properties\Settings.settings
文件 929 2013-05-28 14:44 ImageExplorer\ImageExplorer.sln
............此处省略13个文件信息
- 上一篇:C# WPF 控件合集
- 下一篇:C#播放Mp3
相关资源
- 第二代Kinect WPF开发从入门到精通资料
- WPF21个优秀项目及源码
- SciChart控件破解方法见包内
- WPF开发框架
- wpf特效轮播图
- WPF做的监控程序
- wpf 图片滑动效果
- Telerik_UI_for_WPF破解版
- Telerik_UI_for_WPF_2019_1_116_Dev.msi
- WPF编程宝典2012源码和书(全)
- 深入浅出WPF刘铁猛 重新整理书签 带源
- WPF程序设计指南完整PDF高清版
- Telerik UI for WPF 2018_1_116
- C#联合halcon利用halcon控件实现鼠标拖拽
- 深入浅出WPF 重新整理目录,带源码
- Pro WPF 4.5 in C# Pro WPF系列第四版 英文书
- WPF学习书籍pdf《葵花宝典_WPF自学手册
- Telerik_UI_for_WPF_Documentation
- WPF编程宝典C#2012 第4版(包含源码)
- WPF编程宝典 第四版
- c# WPF 动态曲线显示
- WPF高级编程PDF
- WPF崩溃重启
- C#/WPF下的通用自动更新模块修正
- 基于WPF的USB设备浏览器
- WPF实现类似安卓,ISO的日期选择器
- WPF MVVM模式下 TreeView 右键菜单
- wpf入门第五篇 WPF with ECharts 项目源码
- wpf界面与类之间的交互
- WPF自定义MessageBox完善版 v2 (源码)
评论
共有 条评论