protected override bool OnExchange(SciterElement element, ExchangeArgs args) { switch (args.Event) { case ExchangeEvent.DragEnter: element.AddClass("active-target"); return(true); case ExchangeEvent.DragLeave: element.RemoveClass("active-target"); return(true); case ExchangeEvent.Drag: return(true); case ExchangeEvent.Drop: element.RemoveClass("active-target"); Console.WriteLine($"{args.Value}"); return(true); case ExchangeEvent.WillAcceptDrop: var fileList = new List <string>(); if (args.Value.IsArray) { fileList.AddRange(args.Value.AsEnumerable().Where(w => w.IsString).Select(s => s.AsString())); } if (args.Value.IsString) { fileList.Add(args.Value.AsString()); } return(fileList.All(a => Path.GetExtension(a).Equals(".exe"))); default: return(base.OnExchange(element, args)); } }