viernes, 22 de marzo de 2013

XAML, ajustar el tamaño de la página durante el diseño

Este es uno de esos inconveniente que se producen cuando se está aprendiendo y aún se es bastante ignorante sobre la tecnología que utilizo.

Trabajando en Visual Studio 2012, para una preciosa aplicación WPF con XAML, me encuentro que el compañero que ha realizado el diseño del interfaz ha bindeado el alto y ancho de las páginas.

Esto está muy bien para que se ajuste el tamaño a todo tipo de pantalla o dispositivo, pero tiene el inconveniente de que tiene dos efecto secundarios muy molestos:

1. El diseñador de Visual Studio le pone un ancho y alto prácticamente infinito y no hay forma de manipular de forma interactiva las pantallas.

2. Al estar calculando constantemente el inabarcable tamaño, cualquier actuación en el diseñador se hace con una lentitud insoportable.

¿Cual es la solución? Utilizar el tamaño en diseño.

Es decir, le indico al contenedor principal, en este caso una Page, que quiero que durante el diseño el tamaño de la misma sea lo suficientemente pequeño para ser editable. Y esto lo hago con las siguientes 4 líneas en el XAML que he separado con un salto de línea:

<Page x:Class="TSA_KMSPanel.View.ImportacionKMS"
     
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     
     
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     
mc:Ignorable="d"
     
d:DesignWidth="600"
     
d:DesignHeight="800"
   
     
Title="Gestion Listado Estatus"
     
Name="PageGestionListadoEstatus"
     
FontSize="14">

  • Primero hago la referencia al esquema xml de Blend en su versión 2008.
  • A continuación le digo que el prefijo del esquema “d” sea ignorado por el compilador. Si no haces esto VS2012 te avisa que no encuentra lo siguiente en el esquema y no te deja continuar, aunque en la realidad funciona perfectamente.
  • Le añado dos propiedades del esquema “d” que indican el ancho y alto de la página durante el diseño

Y con esto no solamente ahora puedo diseñar de forma visual mi pantalla, si no que la velocidad de manipulación ahora es más que aceptable.

No hay comentarios: