viernes, 26 de enero de 2007

Mostrar Reflejo de una Imagen con WPF


En este ejemplo pretendemos crear el reflejo de una imagen. También haremos que la imagen y el reflejo tengan sombra.


Código XAML


<Window
x:Class="Reflejo"
xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml"
Title="Reflejo"
Height="367"
Width="299"
WindowStartupLocation="CenterScreen">
<
Grid>
<
StackPanel
Margin="0,15,0,0"
HorizontalAlignment="Center"
Width="195"
VerticalAlignment="Center">
<!--
Primero
crearemos la imagen. Le a¤adiremos una linea blanca
alrededor, una sombra y moveremos 10§ la
imagen
-->
<!--
Creamos
una linea blanca alrededor de la imagen
-->
<
Border
BorderBrush="White"
BorderThickness="5"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<
Border.BitmapEffect>
<
BitmapEffectGroup>
<!--
Creamos
la sombra de la imagen
-->
<
DropShadowBitmapEffect
Color="Black"
Direction="20"
ShadowDepth="25"
Softness="1"
Opacity="0.5"/>
</
BitmapEffectGroup>
</
Border.BitmapEffect>
<!--
Para
poder hacer que la imagen tenga una desviacion de
10§
-->
<
Border.RenderTransform>
<
SkewTransform
CenterX="0"
CenterY="0"
AngleX="0"
AngleY="10"
/>
</
Border.RenderTransform>
<!--
Imagen
que queremos reflejar
-->
<
Image
VerticalAlignment="Center"
Source="\Jusep\Imagenes\shrek3.jpg"
Width="100"
Height="150"
Stretch="Fill"
x:Name="myImage"></Image>
</
Border>
<!--
Ahora
crearemos el reflejo
-->
<!--
Creamos
una linea blanca alrededor del reflejo
-->
<
Border
Width="100"
Height="150"
BorderBrush="White"
BorderThickness="5">
<
Border.BitmapEffect>
<!--
Creamos
la sombra del
reflejo
-->
<
BitmapEffectGroup>
<
DropShadowBitmapEffect
Color="Black"
Direction="20"
ShadowDepth="25"
Softness="1"
Opacity="0.5"/>
</
BitmapEffectGroup>
</
Border.BitmapEffect>
<!--
Hacemos
que la imagen se desvie 10§ el angulo y. Pero tambien
desviaremos el angulo x para que no salga recta la
imagen
-->
<
Border.RenderTransform>
<
SkewTransform
CenterX="0"
CenterY="0"
AngleX="170"
AngleY="10"
/>
</
Border.RenderTransform>
<!--
Para
poder hacer el reflejo asociamos el VisualBrush con la
imagen
-->
<
Border.Background>
<
VisualBrush
Visual="{Binding
ElementName=myImage}
">
<
VisualBrush.Transform>
<
ScaleTransform
ScaleX="1"
ScaleY="-1"
CenterX="150"
CenterY="75"></ScaleTransform>
</
VisualBrush.Transform>
</
VisualBrush>
</
Border.Background>
<!--
Para
que sea opaco el
reflejo
-->
<
Border.OpacityMask>
<
LinearGradientBrush
StartPoint="0,0"
EndPoint="0,1">
<
GradientStop
Offset="0"
Color="Black"></GradientStop>
<
GradientStop
Offset="0.6"
Color="Transparent"></GradientStop>
</
LinearGradientBrush>
</
Border.OpacityMask>
</
Border>
</
StackPanel>
</
Grid>

</
Window>













lunes, 22 de enero de 2007

Kaxaml

Navegando por la red me he encontrado un nuevo programa que puede ser una buena alternativa al XAMLPad.
Kaxaml es un programa para escribir código XAML y que es ideal para pequeñas pruebas o prototipos e incluso para pequeñas presentaciones de WPF.Actualmente esta en su versión 0.2 Alpha.

Para descargar Kaxaml 0.2 Alpha: http://www.notstatic.com/kaxaml/Kaxaml_0.2.msi
Si no os va bien la versión 0.2, descargad la versión 0.1: http://www.notstatic.com/kaxaml/Kaxaml_0.1.msi

Mas información en: http://notstatic.com/archives/49

viernes, 19 de enero de 2007

Nuevo Yahoo! Messenger para Windows Vista desarrollado en WPF


Yahoo ha anunciado la nueva aplicación Yahoo Messenger para Windows Vista desarrollada en WPF.








Para ver una demo de la nueva aplicación:
http://messenger.yahoo.com/vista_popup.php

Para ver la noticia completa desde Yahoo:
http://messenger.yahoo.com/windowsvista.php

miércoles, 10 de enero de 2007

Microsoft Expression Blend BETA


Microsoft lanzó a principios de Diciembre un nuevo software llamado Expression Blend, en calidad de BETA.
Microsoft Expression Blend es una herramienta que nos permite crear controles personalizables, animación, datos, 3D y medios de varios tipos que pueden ser mezclados (blended) todos juntos en la misma herramienta sin la necesidad de escribir nada de código.


Links recomendados:



http://www.microsoft.com/products/expression/en/default.mspx


http://blogs.msdn.com/expression/archive/2006/12/04/announcing-the-microsoft-expression-blend-beta.aspx


martes, 9 de enero de 2007

Aplicación para migrar de VB6 a WPF

Navegando por la red, me he encontrado esta aplicacion que te ayuda a migrar un formulario que tengas hecho en VB6 a WPF. Puede que nos sea util...


http://www.codesapiens.net/English/Products/VB62XAML/tabid/74/Default.aspx



Formación Gratuita sobre WPF

Si quieres hacer un pequeño curso sobre WPF, Microsoft ofrece un curso (en ingles) totalmente gratuito que te explica los aspectos principales sobre WPF.También existen cursos para WCF y WWF.

Clinic 5135: Introduction to Developing with Windows® Presentation Foundation and Visual Studio® 2005
https://www.microsoftelearning.com/eLearning/courseDetail.aspx?courseId=68394

Primeras aplicaciones basadas totalmente en WPF

The NewYork Times acaba de publicar la beta de su nuevo programa “Times Reader” basado totalmente en la tecnología WPF.
Se trata de una aplicación para poder acceder al contenido del periódico offline y de forma totalmente gráfica. Pero lo mejor es que se puede descargar (te tienes que registrar) y comprobarlo por ti mismo.
http://firstlook.nytimes.com/?category_name=times%20reader

martes, 2 de enero de 2007

Charla sobre Windows Presentation Foundation del grupo de usuarios de .Net de Barcelona



El día 25 de Enero de 2007 de 18:00 a 20:00, el grupo de usuarios de .NET de Barcelona (BcnDev) se reunirá en SoftObert para dar una charla sobre WPF.En esta ocasión, la charla la prepararemos Toni Recio, José Luis Latorre y un servidor (en la pagina de Microsoft aparezco como Josep Cubero).

Para más información y registro, acceder al siguiente enlace:
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032323203&Culture=es-ES

Esperamos vuestra asistencia al evento!!

jueves, 28 de diciembre de 2006

Liberado primer CTP de WPF/E

Se ha liberado el primer CTP de WPF/E (o también llamado Windows Presentation Foundation/EveryWhere).
WPF/E es un sub conjunto de WPF pensado para agregar riqueza visual a las aplicaciones y páginas Web, permitiendo integrar animaciones 2D, vídeo y otras formas de interactuar con datos e información.
WPF/E es multiplataforma. Puede correr en Internet Explorer, Firefox e incluso en Safari en un Mac.
Por último, comentar que WPF/E se instala como un plug-in en los browsers.

Para mas informacion, visitar los links:

Y para descargar el CTP: http://www.microsoft.com/downloads/details.aspx?FamilyID=2b01ec7e-c3b8-47cc-b12a-67c30191c3aa&DisplayLang=en

Sandcastle - December 2006 (CTP)

Para aquellos que no lo sepan, estas utilidades permiten generar documentación de código a partir de los assemblies y sus correspondientes documentos XML que genera por ejemplo Visual Studio, a partir de los comentarios del código. Usa además Reflection para obtener documentación adicional de las posibles dependencias que pueda usar nuestra aplicación.

El link para descargar SandCastle es: http://www.microsoft.com/downloads/details.aspx?FamilyID=e82ea71d-da89-42ee-a715-696e3a4873b2&DisplayLang=en

Visual Studio 2005 Service Pack 1 Update for Windows Vista Beta


Ya se han solucionado algunos de los problemas que había para poder ejecutar correctamente el Visual Studio en Windows Vista.

viernes, 22 de diciembre de 2006

BcnDev.Net


Para todos aquellos que quieran participar en el grupo de usuarios de .Net de Barcelona , pasaros por la pagina http://www.bcndev.net/


Sus acciones se dirigen a la difusión, aprendizaje, e intercambio técnico comunitario acerca de productos y tecnologías vinculadas a la tecnología.NET de Microsoft.

lunes, 23 de octubre de 2006

Jusep.NET aparece en DotNetMania

En el nº 30 de la revista DotNetMania se hace referencia a este blog.
Para mi es todo un orgullo y desde aqui quiero agredecer a la revista por el detalle.

Muchas gracias!!!

jueves, 20 de julio de 2006

Mover el Botón y Crear Sombra

Código XAML

<Window.Triggers>

<EventTriggerRoutedEvent="Button.Click">

<EventTrigger.Actions>

<BeginStoryboard>

<Storyboard>

<ThicknessAnimationStoryboard.TargetProperty="Margin">

<Duration="0:0:0.5"From="50,50,50,50"To="0,0,50,50"AutoReverse="True"/>

<DoubleAnimationStoryboard.TargetName="myDropShadowBitmapEffect">

<Storyboard.TargetProperty="ShadowDepth"From="0"To="30"Duration="0:0:0.5">

<AutoReverse="True"/>

<DoubleAnimationStoryboard.TargetName="myDropShadowBitmapEffect"

<Storyboard.TargetProperty="Softness"From="0"To="1"Duration="0:0:0.5"

<AutoReverse="True"/>

</Storyboard>

</BeginStoryboard>

</EventTrigger.Actions>

</EventTrigger>

</Window.Triggers>

<ButtonMargin="10"Width="225"Height="50"Name="myButton">

¡Click paracrear la sombra!

<Button.BitmapEffect>

<DropShadowBitmapEffectx:Name="myDropShadowBitmapEffect"Color="Black"

ShadowDepth="0"/>

</Button.BitmapEffect>

</Button>



Mover el Botón con Sombra

Código XAML

<Window.Resources>
<Style TargetType="{x:Type Button}">
<
Style.Triggers>

<
Trigger Property="IsEnabled" Value="true">

<
Setter Property = "BitmapEffect">

<
Setter.Value>

<
DropShadowBitmapEffect Color="Black" Direction="320"
ShadowDepth="25" Softness="1" Opacity="0.5"/>

</
Setter.Value>

</
Setter>

</
Trigger>

</
Style.Triggers>

</
Style>

</
Window.Resources>

<
Window.Triggers>

<
EventTrigger RoutedEvent="Button.Click">

<
EventTrigger.Actions>

<
BeginStoryboard>

<
Storyboard>

<
DoubleAnimation Storyboard.TargetName="myAnimatedButton"
Storyboard.TargetProperty="(Button.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="1x" From="0"
To="360" Duration="0:0:1" ></DoubleAnimation>

<
DoubleAnimation Storyboard.TargetName="myAnimatedButton"
Storyboard.TargetProperty="(Button.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="1x" From="360"
To="0" BeginTime="0:0:1" Duration="0:0:1"
></
DoubleAnimation>

</
Storyboard>

</
BeginStoryboard>

</
EventTrigger.Actions>

</
EventTrigger>

</
Window.Triggers>

<Grid>
<
Button Name="myAnimatedButton" Height="60" Width="120"
RenderTransformOrigin="0.5,0.5" VerticalAlignment="Center"
HorizontalAlignment="Center">

¡Click Aquí!
<
Button.RenderTransform>

<
RotateTransform Angle="0" />

</
Button.RenderTransform>

</
Button>

</
Grid>

Mover el Botón al hacer Click

Código XAML


<Window.Triggers>


<
EventTrigger RoutedEvent="Button.Click">

<
EventTrigger.Actions>

<
BeginStoryboard>

<
Storyboard>

<
DoubleAnimation Storyboard.TargetName="myAnimatedButton"
Storyboard.TargetProperty="(Button.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="1x" From="0" To="360"
Duration="0:0:1" ></DoubleAnimation>

<
DoubleAnimation Storyboard.TargetName="myAnimatedButton"
Storyboard.TargetProperty="(Button.RenderTransform).(RotateTransform.Angle)" RepeatBehavior="1x" From="360" To="0"
BeginTime="0:0:1" Duration="0:0:1"
></
DoubleAnimation>

</
Storyboard>

</
BeginStoryboard>

</
EventTrigger.Actions>

</
EventTrigger>

</
Window.Triggers>

<Grid>
<
Button Name="myAnimatedButton" Height="60" Width="120"
RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center"
VerticalAlignment="Center">

¡Click Aqui!
<
Button.RenderTransform>

<
RotateTransform Angle="0"/>

</
Button.RenderTransform>

</
Button>

</
Grid>

Cambiar Automáticamente de color una Ellipse

Código XAML


<
Window.Triggers>

<
EventTrigger RoutedEvent="Window.Loaded">

<
EventTrigger.Actions>

<
BeginStoryboard>

<
Storyboard>

<
ColorAnimation Storyboard.TargetName="myEllipse" Storyboard.TargetProperty="(Ellipse.Fill).(SolidColorBrush.Color)" Duration="0:0:5" From="Black" To="White" RepeatBehavior="Forever" AutoReverse="True"/>

</
Storyboard>

</
BeginStoryboard>

</
EventTrigger.Actions>

</
EventTrigger>

</
Window.Triggers>

<
Ellipse x:Name="myEllipse" Fill="Black"/>

Girar una Ellipse

Código XAML

<Window.Triggers>
<
EventTrigger RoutedEvent="Window.Loaded">

<
EventTrigger.Actions>

<
BeginStoryboard>

<
Storyboard>

<
DoubleAnimation Storyboard.TargetName="myEllipse" Storyboard.TargetProperty="(Ellipse.Height)" From="0" To="500" Duration="0:0:3" RepeatBehavior="Forever" AutoReverse="True" />

</
Storyboard>

</
BeginStoryboard>

</
EventTrigger.Actions>

</
EventTrigger>

</
Window.Triggers>

<
Ellipse x:Name="myEllipse" Fill="DarkRed"/>

Cambiar Automáticamente el Tamaño de una Imagen

Código XAML

<Window.Triggers>
<
EventTrigger RoutedEvent="Window.Loaded">

<
EventTrigger.Actions>

<
BeginStoryboard>

<
Storyboard>

<
DoubleAnimation Storyboard.TargetName="myImage" BeginStoryboard.TargetProperty="(Image.Width)" From="0" To="300" Duration="0:0:3" RepeatBehavior="Forever" AutoReverse="True"/>

</
Storyboard>

</
BeginStoryboard>

</
EventTrigger.Actions>

</
EventTrigger>

</
Window.Triggers>

<
Image x:Name="myImage" Source="C:\Documents and Settings\AllUsers\Documentos\Mis imágenes\Imágenes de muestra\Puesta de sol.jpg"/>

miércoles, 19 de julio de 2006

Microsoft .NET Framework 3.0 - July 2006 CTP


Ya esta disponible la nueva version del .NET Framework 3.0
Se puede descargar desde este link http://www.microsoft.com/downloads/details.aspx?FamilyId=62057A6F-185F-41DB-ABE5-678F6FC388F0&displaylang=en