Arrastrar Archivos desde fuera de la Aplicacion Silverlight (Drag and Drop)


Saludos amig@s en este articulo veremos como Silverlight tiene soporte para poder Arrastras desde fuera de la Aplicacion Silverlight uno o varios Archivos, para poder ser leidos e interpretados desde dentro de la Aplicacion en Silverlight, veremos que es muy sencillo, gracias a Silverlight 4.0.

veamos que tendremos en el Codigo XAML para este ejemplo.

<Grid x:Name="LayoutRoot" AllowDrop="True" Background="Silver">

 <TextBox AllowDrop="True" Height="153" Drop="txtTexto_Drop" HorizontalAlignment="Left" Margin="23,53,0,0" Name="txtTexto" VerticalAlignment="Top" Width="413" TextWrapping="Wrap" />

</Grid>

Vemos que en el código anterior tenemos un TextBox, que tiene una Propiedad llamada AllowDrop y esta establecida en True, esto quiere decir que el TextBox esta Preparado para recibir archivos que sean arrastrados dentro de él. Luego creamos un Evento Drop del TextBox, que se desencadenará una vez se haya soltado el archivo dentro del TextBox.

una vez hecha esta aclaración veamos que código necesitamos en el evento Drop.

private void txtTexto_Drop(object sender, DragEventArgs e)
  {
       var archivos=e.Data.GetData(DataFormats.FileDrop) as FileInfo[];
       StreamReader reader=null;
       foreach (var item in archivos)
       {
           if (item.Extension == ".txt")
           {
               reader = new StreamReader(item.OpenRead());
               txtTexto.Text = reader.ReadToEnd();
           }
       }
  }

Con el código anterior, se recorren Todos los Archivos que se hayan Arrastrado y Soltado dentro del TextBox y verifica que sean de extensión .txt, una vez que verifica que son archivos de texto, procede a Leerlos y Mostrar el Contenido en el mismo TextBox.
Bueno amigo aqui les Dejo el Ejemplo en ejecucion, Solo Seleccionen uno o mas archivos de texto de su PC y Arrastrenlo en el Text Box.
Saludos y hasta la Próxima, si tienen alguna duda no duden en comentar.


Comments

Popular posts from this blog

Error al Iniciar Oracle SQL Developer 11g - Unable to find Java Virtual Machine

Como Mantener el Scroll despues de un PostBack ASP.net ( As Maintain Scroll after a PostBack ASP.net )

How to run ng serve in a different port
Como ejecutar ng serve en un puerto diferente