Gustavo's profilementasBlogListsSkyDrive Tools Help

Gustavo Arranhado

Occupation
Location
Public folders
June 27

UX Guidelines

Some User eXperience guidelines.
 
 
 
 
June 21

User eXperience Kit

UXKit.dll is a small library with basic elements to archive a better user experience on Microsoft Silverlight 3.0 applications.
 
The three fundamental concepts in user experiences:
 
  • Motion Graphics
  • Reader & Content
  • Workflow

Features:

  • UIElement Extensions (Move, Zoom, Spin, Fade, Forces, Focus, Glow, Color, Manipulations)
  • Slides (custom transitions)
  • Ticker (see news crawlers)
  • Waves (fractal animations)
  • Chars (text effects)
  • LinkedBlock + Text/ContentFlow (see NY Times Reader, WPF FlowDocument)
  • Effects (Add, Multiply, Screen, Overlay, Ripple, ColorTone, ChromaKey)
Note: A few util code (included in assembly) was obtained from some SL communities.
 
 
 
 
 
 
 
 
 
 
Available for download (sources & samples) after Silverlight 3.0 Release (July).
 
June 20

Energy Simulator

Last weeks my team has been working on "ADENE Simulator" for Microsoft Silverlight 3.0 beta.
 
Currently you can see and interact with simulator on events and expositions (kiosk / touch projector), but late (July - SL 3.0 RTM Release) it will be available on ADENE website for generally public (portuguese language).
 
Developed by ViaTecla for ADENE.
 
 
 
 
 
 
 
 
 
January 25

Silverlight Motion eXtensions

Extension methods to extend any Silverlight FrameworkElement. With Motion eXtensions you can compose animations/behaviors using the "Builder pattern", writing short and simple code.
 
Extensions:
 
// Overview, download link at end of post

public static class MotionExtensions

{

    public static void MotionEnable(this FrameworkElement source)

 

    public static FrameworkElement Sleep(this FrameworkElement source, double duration);

 

    public static FrameworkElement Add(this FrameworkElement source, Panel panel);

    public static FrameworkElement Remove(this FrameworkElement source);

 

    public static FrameworkElement Show(this FrameworkElement source);

    public static FrameworkElement Hide(this FrameworkElement source);

 

    public static FrameworkElement Fade(this FrameworkElement source, double opacity, double duration);

    public static FrameworkElement Fade(this FrameworkElement source, double opacity, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement Move(this FrameworkElement source, double x, double y, double duration);

    public static FrameworkElement Move(this FrameworkElement source, double x, double y, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement Zoom(this FrameworkElement source, double scale, double duration);

    public static FrameworkElement Zoom(this FrameworkElement source, double scale, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement Spin(this FrameworkElement source, double angle, double duration);

    public static FrameworkElement Spin(this FrameworkElement source, double angle, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement Push(this FrameworkElement source, double x, double duration);

    public static FrameworkElement Push(this FrameworkElement source, double x, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement Slice(this FrameworkElement source, double y, double duration);

    public static FrameworkElement Slice(this FrameworkElement source, double y, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement FlipH(this FrameworkElement source, double scale, double duration);

    public static FrameworkElement FlipH(this FrameworkElement source, double scale, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement FlipV(this FrameworkElement source, double scale, double duration);

    public static FrameworkElement FlipV(this FrameworkElement source, double scale, double duration, double acceleration, double deceleration);

 

    public static FrameworkElement Action(this FrameworkElement source, ActionHandler function);

 

    public static void Begin(this FrameworkElement source);

 

    public static void SetOpacity(this FrameworkElement source, double opacity);

    public static double GetOpacity(this FrameworkElement source);

    public static void SetTranslation(this FrameworkElement source, double x, double y);

    public static Point GetTranslation(this FrameworkElement source);

    public static void SetRotation(this FrameworkElement source, double angle);

    public static double GetRotation(this FrameworkElement source);

    public static void SetScale(this FrameworkElement source, double sx, double sy);

    public static Size GetScale(this FrameworkElement source);

}

 
Samples:
 

// Sample 1

Rectangle rect = new Rectangle();

rect.Fill = new SolidColorBrush(Color.FromArgb(128, 255, 0, 0));

rect.Width = 100;

rect.Height = 100;

 

rect.MotionEnable(); 

rect.SetTranslation(100, 100);

 

rect.Add(MyPanel).Spin(90, 0.5).Move(200, 200, 0.25).Zoom(2, 0.25).Remove().Begin();

rect.Sleep(0.75).Fade(0.0, 0.25).Begin();

 

// Sample 2

this.FlipH(0, 0.25).Action(MyAction).FlipH(1, 0.25).Begin();

 

void MyAction(FrameworkElement element)

{

    // Change element

}

 

// Sample 3

this.Push(-50, 0.25, 0.0, 0.5).Push(200, 0.25, 0.5, 0.0).Remove().Begin();

 
Notes:
 
  • RenderTransform, RenderTransformOrigin, Resources and Tag properties of element will be used
  • .Begin() must to be always at end of behavior functions
  • Use .MotionEnable() on element creation (or constructor) to avoid transform instance lost during events
  • You can easily convert (port) this code to WPF

Download Here

January 03

HTML Helpers based on DCB

Website base structure HTML Helpers for ASP.NET or ASP.NET MVC.
 
 
 
Note: Behaviors requires jQuery, Microsoft is looking to make it part of their official development platform.
 

Download Here

January 01

Introducing Design-Content-Behavior (DCB)

Design-Content-Behavior (DCB) is an architectural software pattern to split "View" of Model-View-Controller (MVC) in three layers.
This architecture isolates the fundamental areas of “User Experience".
 

Design
Look and Feel (states, styles, templates, ...)
Content
Interface/Contents (identification, layout, controls, text, media, ...)
Behavior
Content modification, events, transitions, internal/external Calls, ...

March 18

Silverlight Layers

Looking for Bevel, Glow, Shadow, Reflection and Blur effects for Silverlight?! Not the perfect solution but you can do some Photoshop like effects on Silverlight by using pure vector graphics.

You can compose, adjust parameters and.. also modify source code to your needs.
 
Includes:
  • BevelRectangle, InnerGlowRectangle, InnerShadowRectangle, OuterGlowRectangle, OuterShadowRectangle, ReflectionRectangle
  • BevelEllipse, InnerGlowEllipse, InnerShadowEllipse, OuterGlowEllipse, OuterShadowEllipse, ReflectionEllipse
  • OuterGlowTextBlock, OuterShadowTextBlock, ReflectionTextBlock
  • BlurImage
Compose Notes:
  • Outer effects (before)
  • Bevel, Inner and Reflection effects (after)

SilverlightLayers

Developed for Silverlight 2. Download Here

March 02

Unreleased Projects

You can download some unreleased projects and some GotDotNet (closed) projects on my Public Folder.
 
Includes:
  • mentas Ribbon
  • PhotoFilter
  • PhotoEffects
  • mentas Gaming
  • WPF PieMenu
  • Render .NET

Color Schemer

Another simple tool to help designers/developers select a color schema.
 
Color Schemer
 
December 31

Coloring UX

Coloring UX (User Experiences) is a simple application to help designers/developers getting the color right and the right color schema on Web/Desktop applications. It's based on physical light-material interaction.
 
Coloring UX (Concept)Coloring UX (Screenshot)