Tamaño mínimo y máximo de los contenedores en WPF

Julio me pregunta en el post sobre StackPanel y DockPanel :

“¿Existe algunha manera de «declarativamente» decirle a WPF que existe un tamaño mínimo para estos contenedores?

Lo pregunto pq a veces cuando estas redimensionando una ventana interesa que haya un «tope mínimo» donde el usuario no pueda hacerla más pequeña”

Todos los contenedores tienen dos tipos de propiedades MinWidth – MinHeight y MaxWidth – MaxHeight donde le posemos decir el mínimo y el máximo que puede coger el contenedor.

En este pantallazo del Blend tenemos el área de color rojo que es un WrapPanel

 

image

En el área de propiedades podéis ver que tiene las propiedades MinWidth – MinHeight 

En XAML

<WrapPanel Margin="28,37,34,59" Background="#FFFA0707" MinWidth="100" MinHeight="200"/>

Lo mismo pasa con las propiedades MaxWidth – MaxHeight

 

image

<WrapPanel Margin="28,37,34,59" Background="#FFFA0707" MinWidth="100" MinHeight="200" MaxWidth="400" MaxHeight="600"/>

Espero que haya respondido a Julio y a todos los que tengan esta duda

 

Saludos Oskar

Wrap Panel de WPF

El  panel  WrapPanel  es  muy  parecido  al  StackPanel  ya  que  organiza  los
elementos  hijos  de  forma  similar,  a  saber,  de  derecha  a  izquierda  o  de
izquierda  a  derecha,  sin  embargo  la  diferencia  fundamental  es  que  este
contenedor  añade  filas  o  columnas dependiendo del  espacio disponible para
los elementos hijos. 
Es  utilizado  habitualmente  cuando  no  conocemos  el  número  exacto  de
elementos hijos que contendrá el panel.
Como  ejemplo  podemos  ver  el  siguiente  código  XAML  donde  en  un
WrapPanel añadimos seis controles de tipo Label identificados y de diferentes
colores.

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1"> 
    <WrapPanel Name="mainPanel"> 
        <Label Content="Label 1" Background="Red" Width="75"/> 
        <Label Content="Label 2" Background="GreenYellow" Width="75"/> 
        <Label Content="Label 3" Background="Yellow" Width="75"/> 
        <Label Content="Label 4" Background="AliceBlue" Width="75"/> 
        <Label Content="Label 5" Background="Orange" Width="75"/> 
        <Label Content="Label 6" Background="White" Width="75"/> 
    </WrapPanel> 
</Window> 

El resultado de la ejecución:

image


Concurso de Silverlight con 10.000$ de premio

De la mano de Tim Heuer me entero que hay una competición de Silverlight del 22 de Junio hasta el 22 de Septiembre con un premio de 10.000$ organizada por ComponentArts

Aquí tenéis la entrada donde lo explica : http://timheuer.com/blog/archive/2009/06/25/win-10-thousand-dollars-silverlight-coding-competition.aspx

A programar este verano

 

Saludos Oskar

Guía de WCF para desarrolladores de WPF

En el maravilloso sitio de Codeplex se acaba de publicar la guía de WCF para desarrolladores de WPF, en ella podéis encontrar ejemplos, webcast de como plantear los servicios de WCF en aplicaciones WPF, van desde la introducción hasta problemas como manejo de excepciones, multithreading, manejo de la vida del proxy…

 

Podéis acceder a ella desde  aquí, os la recomiendo.

Stack Panel y DockPanel WPF

El siguiente tipo de Contenedor que sigue al Canvas en grado de complejidas
es el StackPanel. Es uno de los mas usados debido a su facilidad de uso gracias
a su simplicidad.
Este panel ordena los elementos hijos de forma secuencial, es decir de derecha
a izquierda o de arriba a abajo. Para ver un ejemplo sencillo podemos utilizar

el  código  fuente  del  ejemplo  mostrado  en  el  panel  Canvas  y  modificar  el
contenedor  por  un  StackPanel.  Hemos  eliminado  las  propiedades  adjuntas
donde se especificaba la posición realtiva de cada Textbox y añadido un color
de  fondo  para  una  mejor  visualización.  El  código  XAML  quedaría  de  la
siguiente manera:

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1"> 
    <StackPanel Name="mainCanvas" Background="Black"> 
        <TextBox Text="1" Background="Red"/> 
        <TextBox Text="2" Background="GreenYellow" /> 
        <TextBox Text="3" Background="Yellow"/> 
        <TextBox Text="4" Background="AliceBlue"/> 
        <TextBox Text="5" Background="Orange"/> 
        <TextBox Text="6" Background="White"/> 
    </StackPanel> 
</Window> 

Siendo el resultado por defecto el siguiente:

image 

Pudiendo  cambiar  la orientación  de  los  objetos  hijos mediante  la  propiedad

Orientation.

 

image

DockPanel

Definido por las etiquetas <DockPanel></DockPanel>, que es el reemplazo de la propiedad Dock de los controles de versiones anteriores, ahora en WPF, se utilizan paneles para definir las áreas de específicas del formulario. Es rígido con los controles, al colocarlos no es simple manipularlos en su interior, por lo que se recomienda incluir un Canvas o un Grid por comodidad, la importancia de este control es para ubicar las áreas del formulario, las cuales se definen estableciendo las propiedades VerticalAlignment para definir el Top, Center, Bottom o Stretch, y la propiedad HorizontalAlignment para definir el Left, Right, Center, Stretch. Cabe mencionar que al utilizar Stretch en ambas propiedades da un resultado parecido a Fill, también es prudente mencionar que se debe utilizar la propiedad Margin para ubicar bien los paneles en sus límites con otros paneles.

 

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1"> 
    <DockPanel Name="mainPanel"> 
        <Label Content="Label 1 (Top)" DockPanel.Dock="Top" Background="Red" /> 
        <Label Content="Label 2 (Left)" DockPanel.Dock="Left" Background="GreenYellow" /> 
        <Label Content="Label 3 (Right)" DockPanel.Dock="Right" Background="Yellow" /> 
        <Label Content="Label 4 (Bottom" DockPanel.Dock="Bottom" Background="AliceBlue" /> 
        <Label Content="Label 5" Background="Orange" /> 
    </DockPanel> 
</Window> 

image


Browser con ejemplos de WPF

 

Mike Taulty de Microsoft UK tiene una aplicación distribuida por Click Once, en la cual tiene ejemplos de WPF y de controles de tercero. Se necesita el .NET Framework V3.5 Sp1para su instalación

image

 

Para instalar la aplicación pincha directamente aqui y se instalara a través de Click once.

 

Espero que os guste

 

Manual / Tutorial de Microsoft Expression Blend

Etiquetas de Technorati:

Siempre que programes en WPF debes de saber utilizar su herramienta de diseño, si he dicho diseño y cuando lo digo en un circulo de programadores todos se echan a temblar y las típicas frases “yo soy programador y el diseño no es lo mio”, “no tengo gusto” … Pero señores Expression Blend es una herramienta también para el programador, una cosa es el diseño de la IU y otra es ponerse a ello, retocar… por eso los programadores no debemos tenerla miedo, a mi por lo menos me parece una herramienta sencilla y muy útil.

Para aprender tenéis aquí un tutorial en castellano de Expression Blend 2.0 muy completo

 

screenshot_sm


Nuestro Primer contenedor de WPF – Canvas

Canvas

Es el panel más simple, sencillo y flexible en el Presentation Framework. Este
tipo  de  panel  posiciona  cada  elemento  hijo  en  posiciones  relativas  con
coordenadas explícitas.
Para posicionar elementos dentro de un Canvas necesitamos  las propiedades
Left  y Top, Right  y Bottom, Left  y Bottom o Right  y Top que posicionarán  el

elemento  con  respecto  al  borde  que  corresponda  del  Canvas  contenedor.
Además  para  establecer  el  orden  de  superposición  de  los  elementos  en  el
Canvas existe la propiedad zIndex.
Si  vemos  un  ejemplo,  en  el  siguiente  código  XAML  se  muestra  un  Canvas
como  Panel  contenedor  con  seis  controles  de  tipo  TextBox  colocados
utilizando las propiedades Left, Top, Right y Bottom.

 

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1"> 
    <Canvas Name="mainCanvas" Background="Black"> 
        <TextBox Text="Left=0 y Top=0"/> 
        <TextBox Text="Left=15 y Top=15" Canvas.Left="15" Canvas.Top="15"/> 
        <TextBox Text="Right=15 y Bottom=15" Canvas.Right="15" Canvas.Bottom="15"/> 
        <TextBox Text="Right=0 y Bottom=0" Canvas.Right="0" Canvas.Bottom="0"/> 
        <TextBox Text="Right=0 y Top=0" Canvas.Right="0" Canvas.Top="0"/> 
        <TextBox Text="Left=0 y Bottom=0" Canvas.Left="0" Canvas.Bottom="0"/> 
    </Canvas> 
</Window> 

Y el resultado es el siguiente:

image

 

Controles de WPF Gratis

Telerik tiene una oferta especial para los que tengan una subscripción de MSDN y es dar una licencia de desarrollo gratis valorada en 799$. Podeis echarla un vistazo accediendo a http://www.telerik.com/products/wpf.aspx

La oferta es valida solo hasta el 31 de Julio así que aun tenéis tiempo.

Para bajar el control ir a vuestra pagina de login de MSDN , click en la pestaña “Special Offer” y elegir “Exclusive deal by Telerik: RadControls for WPF – FREE Developer License“.