मुझे लगता है कि यह काम करना चाहिए:
<Grid>
<ListBox AllowDrop="True" DragOver="lbx1_DragOver"
Drop="lbx1_Drop"></ListBox>
</Grid>
चलो मान लेते हैं तो आप केवल सी # फ़ाइलों सकते हैं:
private void lbx1_DragOver(object sender, DragEventArgs e)
{
bool dropEnabled = true;
if (e.Data.GetDataPresent(DataFormats.FileDrop, true))
{
string[] filenames =
e.Data.GetData(DataFormats.FileDrop, true) as string[];
foreach (string filename in filenames)
{
if(System.IO.Path.GetExtension(filename).ToUpperInvariant() != ".CS")
{
dropEnabled = false;
break;
}
}
}
else
{
dropEnabled = false;
}
if (!dropEnabled)
{
e.Effects = DragDropEffects.None;
e.Handled = true;
}
}
private void lbx1_Drop(object sender, DragEventArgs e)
{
string[] droppedFilenames =
e.Data.GetData(DataFormats.FileDrop, true) as string[];
}
स्रोत
2009-04-10 06:33:35
सही है, धन्यवाद! मैं बस उस कर्सर को चमकाने के कुछ साइड इफेक्ट्स को रोकने के लिए जोड़ूंगा जब आप उस नियंत्रण के बच्चों पर जाते हैं जिन्हें आप छोड़ रहे हैं, तो आप इसे जोड़ सकते हैं: DragEnter = "lbx1_DragOver" ड्रैगइंटर ईवेंट पर चेक करने के लिए साथ ही ड्रैगओवर पर भी। – David