Featured Posts

Silverlight 5 Ya DisponibleSilverlight 5 Ya Disponible El día de hoy 09 de Diciembre 2011 ha sido liberada la nueva versión de Silverlight 5.  Esta versión final es la 5.0.61118. ¿Qué es Silverlight? Silverlight es...

Readmore

Silverlight Tour–Actualizado a Silverlight 5 RTWSilverlight Tour–Actualizado a Silverlight 5... Tengo el gusto de anunciarles que el Curso que Da La Vuelta al Mundo, el famoso Silverlight Tour, ha sido actualizado a la versión final de Silverlight 5. El Silverlight...

Readmore

Nueva carrera en Microsoft Virtual Academy: Windows Phone 7.1 (Mango)Nueva carrera en Microsoft Virtual Academy: Windows... Tengo el gusto de darles a conocer la disponibilidad de una nueva carrera en el Microsoft Virtual Academy (MVA): La carrera de Windows Phone 7.1 Mango. Esta es la descripción...

Readmore

Nueva carrera en Microsoft Virtual Academy: Silverlight 4Nueva carrera en Microsoft Virtual Academy: Silverlight... ¿Eres estudiante de Microsoft Virtual Academy (MVA)? Tengo el gusto de anunciarles oficialmente el lanzamiento de la nueva carrera de Silverlight 4 para esta plataforma educativa. La...

Readmore

Curso gratuito de Introducción a Silverlight 4 – 2da. ParteCurso gratuito de Introducción a Silverlight... Tengo el gusto de informarles que ya está disponible la segunda parte del Curso gratuito de Introducción a Silverlight 4 en Español, el cual ahora consta de un total...

Readmore

Rodrigo Díaz Concha Rss

Silverlight 4 Beta – Acceso al Portapapeles

Posted on : 25-11-2009 | By : Rodrigo | In : Silverlight 4

Tags: , , ,

3

Silverlight 4 incorpora la posibilidad de acceder programáticamente al Portapapeles desde nuestra aplicación.  En este artículo veremos esta pequeña pero importante funcionalidad.

El proyecto

Crearemos un proyecto de Silverlight 4 por medio de Visual Studio 2010 Beta 2.  Al proyecto lo nombraremos Demo.SL4.Portapapeles y aceptaremos las opciones por default de creación del proyecto Web para probar la aplicación.  La aplicación tendrá la siguiente Interface de Usuario:

image 

En el primer botón guardaremos el texto del TextBox en el Portapapeles.  Además, su propiedad IsEnabled estará atada a la ruta de propiedad Text.Length del TextBox.  Este es un buen ejemplo de Atado de Datos entre Elementos.  En el segundo botón leeremos el contenido del Portapapeles y lo pondremos en el TextBlock.

La aplicación estará configurada para poder correr en Confianza Elevada para mostrar los conceptos aquí demostrados.

Clase Clipboard

La clase que permite el acceso al Portapapeles es la clase System.Windows.Clipboard.  Es importante mencionar lo siguiente:

  • El método ContainsText() indica si el Portapapeles tiene contenido
  • Para aplicaciones que estén corriendo en el sandbox (aplicaciones dentro del Navegador o Aplicaciones Fuera del Navegador tradicionales), la ejecución de los métodos GetText() y SetText() provoca la siguiente caja de diálogo, para que el usuario dé permiso explícito a la aplicación para usar el Portapapeles.  Cabe mencionar que GetText() y SetText() en este caso deberán ser iniciadas por una acción del usuario (ejemplo: el Click de un botón):

image 

  • Para las aplicaciones que ejecuten en Confianza Elevada, la anterior caja de diálogo es omitida y tendremos acceso directo a los métodos de la clase.  Además los métodos podrán ser ejecutados desde cualquier evento.  Tal es el caso de nuestra aplicación de ejemplo en donde tenemos el siguiente código:
this.Loaded += (s, a) =>
            {
                if (Application.Current.HasElevatedPermissions)
                {
                    Clipboard.SetText("Corriendo en confianza elevada " + DateTime.Now.ToString());
                    textBox1.Text = Clipboard.GetText();
                }
            };

En el código podemos apreciar cómo estamos ejecutando el método SetText() siempre y cuando la aplicación esté corriendo en Confianza Elevada.

  • El Portapapeles en Silverlight 4 (en esta versión Beta por lo menos), únicamente soporta cadenas de texto tipo Unicode.

Resultado

La aplicación ejecutando en Confianza Elevada:

image

Resumen

La clase System.Windows.Clipboard nos permite tener acceso programático al Portapapeles.  Si la aplicación está ejecutando en el sandbox (Confianza Parcial), el usuario tendrá que dar permiso explícito a través de una caja de diálogo para poder usar el Portapapeles.  Si la aplicación ejecuta en Confianza Elevada, esta caja de diálogo es omitida.

Pueden descargar el código de aquí

Pueden ver el demo en vivo aquí (requiere Silverlight 4)

Comments (3)

[...] Ver el artículo completo aquí [...]

Hola tu demo ya no esta funcionando, pero me parece importante saber de esta funcionalidad…

Hola Rodrigo, en qué parte exactamente no está funcionando?

Gracias y salu2!

Write a comment

Spam Protection by WP-SpamFree