gpt4 book ai didi

C#/WPF : Drag & Drop Images

转载 作者:行者123 更新时间:2023-11-30 15:09:52 24 4
gpt4 key购买 nike

我想允许在我的应用程序中放置图像文件:用户可以将图像从 Windows 拖放到我的窗口中。我有以下代码,但它似乎不起作用。我尝试了 FileDropBitmap,都失败了

private void Border_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop)) {
e.Effects = DragDropEffects.Copy;
} else {
e.Effects = DragDropEffects.None;
}
}

private void Border_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
MessageBox.Show(e.Data.GetData(DataFormats.FileDrop).ToString());
}
else
{
MessageBox.Show("Can only drop images");
}
}

如何检查用户尝试删除的格式?

最佳答案

如果用户从资源管理器中拖动,那么您得到的只是一个文件名列表(带路径)。一个简单且最有效的解决方案是查看文件扩展名,看看它们是否与预定义的受支持扩展名列表相匹配。

类似这样的东西(未经测试,甚至可能无法编译,但希望你能理解)

var validExtensions = new [] { ".png", ".jpg", /* etc */ };
var lst = (IEnumerable<string>) e.Data.GetData(DataFormats.FileDrop);
foreach (var ext in lst.Select((f) => System.IO.Path.GetExtension(f)))
{
if (!validExtensions.Contains(ext))
return false;
}
return true;

关于C#/WPF : Drag & Drop Images,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3861902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com