Если пользователь перетаскивает из проводника, то все, что вы получаете, это список имен файлов (с путем). Простым и в основном рабочим решением было бы посмотреть на расширения файлов и, если они соответствуют предварительно определенному списку поддерживаемых расширений.
Примерно так (не проверено, может даже не компилироваться, но, надеюсь, вы поняли)
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;