Desktop Drag and Drop Files
With Silverlight 4 is the new Drop event which is present on all elements derived from UIElement. With this simple example we will display a Grey area which you can drop a file onto.
<UserControl x:Class="DesktopDragandDrop.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<Grid.RowDefinitions>
<RowDefinition Height="200" />
<RowDefinition />
</Grid.RowDefinitions>
<Grid Grid.Row="0" AllowDrop="True" Drop="LayoutRoot_Drop" Background="#f0f0f0">
<TextBlock Text="Drop some files here!" FontSize="24" TextAlignment="Center" VerticalAlignment="Center" />
</Grid>
<TextBlock x:Name="output" Grid.Row="1" />
</Grid>
</UserControl>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
using System.Text;
namespace DesktopDragandDrop
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void LayoutRoot_Drop(object sender, DragEventArgs e)
{
FileInfo[] files = ( FileInfo[])e.Data.GetData(System.Windows.DataFormats.FileDrop);
StringBuilder content = new StringBuilder();
foreach (FileInfo file in files)
{
content.Append(file.Name);
content.Append(Environment.NewLine);
}
output.Text = content.ToString();
}
}
}
As you can see in the LayoutRoot_Drop event handler we are provided with a data object passed in via the event args object. When dropping files onto your Silverlight application this will be an array of FileInfo objects.
The FileInfo object contains basic file information such as its name and extension and size. To be able to read the file you will need to be running your application Out of Browser.
Your Comments
Post your Comments
Rate this page:
1 Star
2 Star
3 Star
4 Star
5 Star
9 Ratings / 2.8 Average