Archivo de 14 May, 2008

Editor de contenidos FSPortal

Posted in Trabajos with tags , , on 14 May, 2008 by febrer

FSPortal, es mi producto estrella. Antes de FSPortal, estuve realizando unos controles personalizados para el desarrollo rápido de aplicaciones (RAD), del que también os hablaré en breve. Con FSPortal, la edición de contenidos es una tarea muy sencilla. Dispone de un editor wysiwyg (What you see is what you get) en castellano, lo que ves es lo que obtienes. Dicho editor es el fckeditor (su web: fckeditor.net).

También dispone de un editor de tablas y administrador de ficheros para la actualización de contenidos.

Os dejo un video para que veáis su funcionamiento:

Efecto «messy» en un wrappanel

Posted in WPF with tags , , , on 14 May, 2008 by febrer

Hoy pondré un poco de código interesante. Es un efecto «messy», para que veáis el efecto, os pongo una captura:

Realizarlo es muy sencillo. Lo que hacemos es en evento Loaded del wrappanel, rotamos la posición de todos los objetos. Para hacer más cool el cambio, lo hacemos con DoubleAnimation, que permite «visualizar» el movimiento.

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;
namespace Sdnert.Carousel
{
    public class BulkPanel : WrapPanel
    {
        private bool _bulk = false;

        public BulkPanel()
        {
            Loaded += new RoutedEventHandler(BigAndSmall_Loaded);
        }
        public bool bulk
        {
            get { return _bulk; }
            set
            {
                _bulk = value;
                Update();
            }
        }
        private void BigAndSmall_Loaded(object sender, RoutedEventArgs e)
        {
            Update();
        }
        public void Update()
        {
            Random ra = new Random(DateTime.Now.Millisecond);
            Random ra2 = new Random(DateTime.Now.Millisecond);
          
            foreach (UIElement child in Children)
            {
                int v = ra.Next(5) + 5;
               
                if (ra2.Next(2) == 1)
                {
                    v = v*-1;
                }
               
                if (bulk == false)
                {
                    v = 0;
                }
                RotateTransform rotate = new RotateTransform();
               
                DoubleAnimation dblAni = new DoubleAnimation();
                dblAni.From = (double) child.RenderTransform.GetValue(RotateTransform.AngleProperty);
                dblAni.To = v;
                dblAni.Duration = new Duration(TimeSpan.FromSeconds(2));
                ((ListBoxItem) child).RenderTransform = rotate;

                rotate.BeginAnimation(RotateTransform.AngleProperty, dblAni);
            }
        }
    }
}