Crear un Wallview para imágenes con Silverlight diseño

Como lo indica el título, vamos a crear un Wallview inspirado en iTunes. Este tutorial se divide en dos partes: una para el diseño en Blend y otra para el código que está detrás en Visual Studio..


Vista previa del resultado final

Eche un vistazo a este video de demostración del resultado final en el que trabajaremos (o simplemente eche un vistazo a la demostración basada en la web más arriba):


Introducción

En esta parte del tutorial vamos a diseñar dos UserControls en Expression Blend. Este tutorial parece bastante largo por la cantidad de pasos, pero esto se debe a que es muy completo; Hay una explicación y una captura de pantalla para casi todos los clics que tiene que hacer. La razón por la que lo he escrito con tanto detalle es que mis compañeros de la universidad encontraron que Blend es demasiado complejo y difícil de usar.


Paso 1: Crea un nuevo proyecto en Visual Studio

Abra Visual Studio y haga clic en "Archivo"> ​​"Nuevo"> "Proyecto" en la barra de menú superior.


Paso 2: Configuración

Seleccione la aplicación Silverlight Visual C # en el menú e ingrese "WallviewApp" para el nombre del proyecto en la parte inferior, así como la ubicación para guardar el proyecto.

Después de eso verá una ventana emergente. Asegúrese de marcar la casilla en la parte inferior y seleccione Silverlight 4 en el cuadro combinado.


Paso 3: Abre el proyecto en Blend

Inicie Expression Blend y abra el proyecto que acabamos de crear en Visual Studio.

Busque el archivo de proyecto dentro del directorio del proyecto y ábralo.


Paso 4: Crea dos nuevas carpetas

Haga clic derecho en el proyecto WallviewApp dentro del árbol del proyecto y elija "Agregar nueva carpeta". Haga esto dos veces, llame a las carpetas "controles de usuario" e "imagen".


Paso 5: Crear un nuevo UserControl

Haga clic con el botón derecho en la carpeta recién creada "usercontrols" y seleccione "Agregar nuevo elemento ...".

En la ventana emergente, asegúrese de que UserControl esté seleccionado e ingrese "image.xaml" como nombre.


Paso 6: Crear un StackPanel

Elija el contenedor StackPanel en la barra de herramientas, que debería estar en el lado izquierdo de forma predeterminada ...

... y dibuja un rectángulo en el medio del LayoutRoot que estaba allí desde el principio.


Paso 7: Ajuste el StackPanel

Asegúrese de que StackPanel esté seleccionado en el lado izquierdo en el panel "Objetos y escala de tiempo". En el lado derecho verá los parámetros del elemento seleccionado actualmente. Cambie el ancho y la altura a "Auto (0)" haciendo clic en las flechas cruzadas al lado del campo de texto. HorizontalAlignment to "Center" y VerticalAlignment to "Top". Reinicie el Margen haciendo clic en el icono cuadrado blanco al lado de los campos de texto y seleccione Restablecer en el menú. Después de eso, ajuste el margen superior a "5". Ahora el panel de diseño debería tener este aspecto y, como StackPanel tiene un tamaño de 0x0 píxeles, ya no puede verlo:


Paso 8: crear una cuadrícula

Continúe y seleccione el contenedor de cuadrícula en la barra de herramientas en el lado izquierdo (donde seleccionamos el StackPanel antes) y dibuje otro rectángulo en el centro de su área de trabajo.


Paso 9: Ajustar la rejilla

Eche un vistazo al panel "Objetos y línea de tiempo" y asegúrese de que la cuadrícula esté dentro del panel de pila. Si no es simplemente haga clic y arrástrelo hacia el Panel de Pila.

Ajuste la configuración del diseño mientras la cuadrícula aún está seleccionada. Establezca Ancho y Alto en "200" píxeles, Horizontal y VerticalAlignment en "Estirar" si aún no están.


Paso 10: Crea un borde

Ahora vamos a crear un borde. Puede seleccionarlo como el Grid y StackPanel desde la barra de herramientas en el lado izquierdo. Dibuje un rectángulo con el borde y muévalo a la cuadrícula si aún no está.


Paso 11: Ajusta el color del set de bordes y las esquinas

Abra el área para Pinceles en el lado derecho y cambie el BorderBrush al siguiente Color: "# 0076A2F9". A continuación, configure BorderThickness en el panel de Apariencia en "5" píxeles en las cuatro direcciones y CornerRadius en "5" píxeles. El ancho y la altura deben configurarse en "Automático" haciendo clic en las flechas cruzadas junto al cuadro de texto. La alineación horizontal debe establecerse en "Centro" y la alineación vertical en "Inferior":


Paso 12: Ajustar el borde Agregar una sombra

Ahora vamos a agregar un efecto de sombra al borde. Haga clic en el botón "Nuevo" dentro del área de Apariencia justo al lado de Efecto. En la próxima ventana emergente, seleccione "DropShadowEffect" y haga clic en "Aceptar".

Ajuste la Configuración de Sombra que apareció justo debajo del botón "Nuevo" configurando BlurRadius en "10" y ShadowDepth en "1":


Paso 13: importar una imagen

Ahora vamos a importar una imagen a Blend. Para ello, haga clic con el botón derecho en la carpeta llamada "imagen" que creamos anteriormente y seleccione "Agregar elemento existente" o seleccione la carpeta y arrastre una imagen directamente desde su escritorio o explorador..

Después de la importación, el árbol de su proyecto debería verse así:


Paso 14: Usa la imagen

Para utilizar la imagen en el control, simplemente arrástrela desde el navegador del proyecto, donde la importó, directamente al área de trabajo. Como puede ver, es demasiado grande y está en el contenedor incorrecto:

Para arreglar eso solo arrastramos la imagen al borde:


Paso 15: Ajustar la imagen

Cambie la altura y el ancho de la imagen a "Auto", la alineación horizontal y vertical a "Centro", los márgenes a "0" y estire a "Uniforme" en el panel Propiedades comunes:


Paso 16: Crea un TextBlock

Seleccione la herramienta TextBlock en la barra de herramientas en el lado izquierdo y cree un TextBlock en algún lugar del área de trabajo.

Presiona la tecla "ESC" en tu teclado para cancelar la edición del texto dentro de TextBlock.


Paso 17: Ajusta el TextBlock

Haga clic y arrastre el TextBlock en el panel "Objetos y línea de tiempo" en el StackPanel que creamos anteriormente.

Después de eso, cambie el Color de primer plano a "# FF1F1F1F" y la configuración de Diseño en el lado derecho a los siguientes valores: Ancho: "Auto", Altura: "Auto", HorizontalAlignment: "Centro", VerticalAlignment: "Top", Margen -Top: "8". Configure el texto a nada marcando el texto "TextBlock" y eliminándolo o haciendo clic en el cuadrado blanco que se encuentra a su lado y haciendo clic en "Restablecer". También cambia la fuente del texto a "Verdana":


Paso 18: Crea otro TextBlock

Cree otro TextBlock ya sea repitiendo los Pasos 16 y 17, o seleccionando el que ya creamos en el panel "Objetos y escala de tiempo" y presionando Ctrl + C y luego Ctrl + V para duplicarlo. Lo único que tenemos que hacer diferente al Paso 17 es que no queremos que se establezca ningún Margen. Si hizo el método duplicado, simplemente estableció el Margen superior en "0" o haga clic en el pequeño cuadrado blanco que se encuentra a su lado y reinicie el Margen:


Paso 19: Renombrar los elementos

Para poder trabajar con los elementos que hemos creado hasta ahora debemos darles nombres. Así que adelante, cambie el nombre del TextBlock en la parte inferior para "imgDate" haciendo clic lentamente dos veces o haciendo clic derecho y seleccionando "rename". Cambie el nombre del otro TextBlock a "imgName", la imagen a "img", el borde a "imgBorder" y la cuadrícula a "imgSize". Ahora hemos terminado con el diseño de este control y su jerarquía debe tener este aspecto:

Y el diseño debería verse así:

Por supuesto, no puede ver los dos TextBlocks en su proyecto ya que configuramos su Texto a nada unos pasos antes.

Personalmente, dejo los nombres de Textblocks siempre que los necesite para realizar el diseño antes de eliminarlos. De esta manera, puedes controlar si todo está en el lugar correcto..


Paso 20: Echa un vistazo a la XAML

Si desea ver el código que acabamos de generar, haga clic en el icono "< >"en el centro, en la parte superior de la barra de desplazamiento derecha del área de trabajo. Para volver a la vista de diseño, haga clic en el icono en la parte superior.

Nuestro código se ve así:

                

Paso 21: Crea otro UserControl

Asegúrate de volver a la vista de diseño.

Cree otro UserControl en la carpeta "usercontrols" haciendo clic derecho en la carpeta y seleccionando "Agregar nuevo elemento" en el menú.

Desde la ventana emergente, seleccione "UserControl" y para el nombre ingrese "wallview-img.xaml":


Paso 22: Crea un ScrollViewer

Elija el contenedor ScrollViewer de la barra de herramientas a la izquierda ...

... y dibuja un rectángulo con él en el espacio de trabajo.


Paso 23: Ajustar el ScrollViewer

Mientras se selecciona ScrollViewer, inspeccione el área de Pinceles en el lado derecho y cambie el BorderBrush a "No Brush".

Establezca BorderThickness en "0" para las cuatro direcciones, la alineación horizontal y vertical en "Estirar", el margen superior en "29" píxeles y los otros márgenes en "0". También controle si el Ancho y la Altura están en "Auto" haciendo clic en las flechas cruzadas. Extienda aún más el área de Diseño haciendo clic en la flecha pequeña y configure las cuatro direcciones de Relleno en "0":


Paso 24: Crear un StackPanel

Seleccione el StackPanel de la barra de herramientas a la izquierda ...

... y crea un StackPanel en el medio del ScrollViewer.


Paso 25: Ajustar el panel de pila

Seleccione el StackPanel si aún no está en el panel "Objetos y línea de tiempo", luego haga clic en el botón "Pincel de color sólido" en el área de Pinceles (es el segundo desde la izquierda, justo al lado de "Sin pincel") y establezca el Color de fondo en "# FFB8B8B8". Además, cambie la alineación horizontal y vertical a "Estirar", verifique si el ancho y la altura están configurados en "Automático" y si los márgenes son todos "0":


Paso 26: Crea una cuadrícula

Elija el contenedor de cuadrícula de la barra de herramientas y cree una cuadrícula.

Si lo creó dentro de StackPanel, simplemente arrástrelo y suéltelo en el LayoutRoot-Grid:


Paso 27: Ajustar la rejilla

Cambie la altura de la cuadrícula a "30" píxeles y el ancho a "Automático". HorizontalAlignment to "Stretch", VerticalAlignment to "Top" y el Margen a (-1, -1, -1, 0) para (izquierda, arriba, derecha, abajo):


Paso 28: Crear un rectángulo

Seleccione la herramienta Rectángulo en el lado izquierdo que se encuentra sobre los contenedores que ya usamos varias veces ...

... y dibujar una caja en el área de trabajo.

Mueva el rectángulo a la cuadrícula que creamos en el paso anterior:


Paso 29: Ajustar el rectángulo

Cambie el color de relleno del rectángulo a "# FF4E4E4E":

Y el color del trazo a "# FF1F1F1F":

Establezca la Altura y el Ancho en "Automático", la Alineación Horizontal y Vertical en "Estirar" y restablezca el Margen si hay alguno:


Paso 30: Crear un StackPanel

Ahora creamos un StackPanel y lo movemos a la Cuadrícula:


Paso 31: Ajustar el Panel de Pila

Cambie los parámetros de StackPanel a lo siguiente: Ancho y Alto a "Auto", Orientación a "Horizontal", HorizontalAlignment a "Izquierda", VerticalAlignment a "Centro" y Margen-Izquierda a "10":


Paso 32: Crear un botón

Seleccione la herramienta de botón de la barra de herramientas ...

... y crea un botón en algún lugar del área de trabajo.

Luego arrástralo al StackPanel que acabamos de crear:


Paso 33: Ajustar el botón

Establezca la Anchura y la Altura del botón en "Automático", HorizontalAlignment en "Estirar", VerticalAlignment en "Centro", Márgenes si hay alguno en "0", el Contenido en "Todos los álbumes" (espacios en blanco a propósito para que se vea el botón predeterminado Un poco mejor) y la fuente a "Verdana":


Paso 34: Duplicar el botón

Seleccione el botón y presione Ctrl + C, Ctrl + V para copiar y pegar el botón en el mismo StackPanel, luego cambie el margen izquierdo a "5" y el contenido a "Álbum actual":


Paso 35: Duplicar el StackPanel

Seleccione el StackPanel con los dos botones en el panel "Objetos y línea de tiempo" y presione CTRL + C, CTRL + V para duplicarlo también. Ahora tu jerarquía debería verse así:


Paso 36: Ajusta el Panel de Pila Duplicado

Seleccione el StackPanel duplicado si aún no lo ha hecho, cambie la alineación horizontal a "Derecha" y configure todos los márgenes a "0" excepto el derecho que configuró a "10" píxeles.


Paso 37: Ajustar los botones

Seleccione uno de los botones en el StackPanel duplicado y cambie su contenido a " < " if you selected the left one and to " > "para el correcto. Ahora tenemos dos botones con un símbolo de flecha que luego se usará para la navegación.


Paso 38: Crear un control deslizante

Seleccione la herramienta Slider en la barra de herramientas y cree un control deslizante en su área de trabajo.

Luego arrástrelo y suéltelo en la parte superior del StackPanel inferior:


Paso 39: Ajustar el control deslizante

Seleccione el control deslizante y ajústelo a las siguientes configuraciones:

  • Ancho: "100",
  • Altura: "Auto",
  • Alineación horizontal: "Centro",
  • Alineación vertical: "Centro",
  • Margen derecho: "20",
  • los otros márgenes: "0",

Y bajo propiedades comunes:

  • LargeChange: "0,2";
  • Máximo: "1,5";
  • Mínimo: "0,5":
  • SmallChange: "0,1";
  • Valor: "1".

Paso 40: Renombrar los elementos

Como en la imagen UserControl que creamos anteriormente, cambiaremos el nombre de los elementos que necesitaremos más adelante. De abajo hacia arriba: Botón: "btnNext", Botón: "btnPrev", Control deslizante: "control deslizante", omitir el StackPanel, Botón: "btnCurrentAlbum", Botón: "btnAllAlbums", omitir los siguientes elementos hasta el StackPanel que está dentro del ScrollViewer. Cambie el nombre de ese StackPanel a "content". Ahora la jerarquía debería verse así:


Paso 41: Look Final

Así es como debería aparecer el UserControl "wallview-img":


Paso 42: Echa un vistazo al Código

Así es como aparece el código xaml para nuestro UserControl "wallview.img.xaml":

         

Conclusión

Blend es una gran herramienta para crear hermosos diseños y animaciones. Incluso puede escribir el código completo en Blend, pero prefiero usar Visual Studio, ya que es más poderoso, tiene un depurador y un mejor IntelliSense para propuestas y autocompletar.

En la segunda parte de este tutorial vamos a escribir el código completo detrás de nuestros dos UserControls en C #, así como nuestro propio servicio web que trae cada imagen de una carpeta en particular a nuestro Wallview..

Ya que este es mi primer tutorial, espero que te haya gustado trabajarlo y haber aprendido algo útil. Para cualquier comentario, sugerencia o inquietud, por favor deje una nota en la sección de comentarios.

Gracias por leer!


Recursos adicionales

Prueba de 30 días de Blend
Una introducción a Microsoft Silverlight 4 - Mezcla