Featured Posts

Anunciando: Taller de Silverlight 4Anunciando: Taller de Silverlight 4 Antes que otra cosa, quiero agradecer a todos y todas quienes me ayudaron a contestar la encuesta que preparé en días pasados.  Recibí más de 250 respuestas de personas...

Readmore

Silverlight Tour–Guadalajara (08 al 10 de Septiembre... El interés y difusión de Silverlight como plataforma de desarrollo está siendo cada vez más grande y muchas empresas están optando por esta tecnología para construir...

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

Silverlight Tour en Español – Ahora con controles de Telerik!Silverlight Tour en Español – Ahora con... Tengo el gusto de informar que tal como sucede con el Silverlight Tour en USA y Canadá, ahora también el Silverlight Tour en Español en asociación con Telerik incluye...

Readmore

Rodrigo Díaz Concha Rss

Silverlight 4 Beta – Acceso al Portapapeles

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

Tags: , , ,

1

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)

  • Share/Bookmark

Comments (1)

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

Write a comment

Spam Protection by WP-SpamFree