Latest News

  • Silverlight Online Chat
    Jul 24, 2010

    Today we launch the new Silverlight Live Chat application demonstrating the Liquid RichTextBox and Emoticon replacements.

  • New Super Shoot Em Up 2 Game
    Jun 29, 2010

    Added to the Games section is the new Super Shoot 'Em Up 2 game. Take control of your tank with the aim to defeat the computer controlled opponents. Features all new weapons, levels and Battle Mode!

  • Silverlight 4 Controls V5.3.2 Released
    Jun 28, 2010

    This release contains several fixes raised in the forums.

  • New Sandmania Puzzle Game
    Jun 18, 2010

    Sandmania is the latest game from vectorlight, the aim of this game is to guide sand from the top of the screen to the various colored containers below.

  • New Moon Tower Defense Game
    May 29, 2010

    Added to the Games section is the new Moon Tower Defense game. Defend the Moon from the circling Aliens and Humans.

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

Matt Eland posted

Seems to work fine for any random folder on my machine (though attempting to get directory information generates security exceptions).



I've heard this doesn't work as well on Macs. Is this true?


Cory Seaman posted

The functionality of the drag and drop feature is still, unfortunately, very limited, it would seem (through the RC version)...even when running out of browser you're still limited to a user's special folders like "My Documents".  I wrote a sample app to .zip files, and the only ones the app has genuine access to are those dragged from the allowed handful of special folders.  I think there's going to be some frustration when the meaning of this starts to become apparent to developers--drag and drop is such a promising feature!


 

Post your Comments

Rate this page: 

1 Star 2 Star 3 Star 4 Star 5 Star
9 Ratings / 2.8 Average

Ultimate Gamers

  • 1 stig
  • 2 Gh0sT
  • 3 dhoz
  • 4 janso
  • 5 gaaslin
  • 6 RadiateLogic
  • 7 dan
  • 8 Haroldo
  • 9 bigblue531
  • 10 oussama

  • See the full chart here!

Silverlight Controls

  • Rich TextBox

    Create and edit rich content with this slick and expandable Rich TextBox...

  • TreeView

    This easy to use TreeView comes with drag and drop, sorting, searching and much more...

  • Context Menu

    You too can have cool popup context menus in your Silverlight applications...

  • Resizable Dialog

    Draggable and resizable popup dialogs are what serious Silverlight developers need...

  • Spell Checker

    Real-time spell checking in Silverlight? We did it first here...