vendredi 17 février 2012

FluidKit - Transition

Bien que l'on soit un bon programmeur concevant de bons programmes, un point faible qui revient souvent est le design de l'application. Bien qu'une application puisse être performante, il est toujours préférable qu'elle soit également agréable à utiliser. Si comme moi, vous ne possédez pas la passion du graphisme et des jolies transitions entre les pages, il existe des librairies pouvant vous être très utiles.
L'une d'entre elles est FluidKit qui, en plus de ses capacités, est gratuit et ça c'est appréciable. Le projet est disponible en téléchargement sur le lien suivant: Une fois téléchargé, il vous suffit de le compiler de manière à créer un fichier DLL qu'il vous suffira d'ajouter à votre projet. Pour comprendre de quoi il est capable, son exécution vous permettra d'avoir un aperçu de ses capacités.
Des exemples accompagnent toutes ses fonctions mais leur compréhension n'est pas toujours aisées donc dans un premier temps, je donne un exemple d'utilisation de la propriété "Transition".

Code Xaml
<Window x:Class="GranyOS.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:controls="clr-namespace:FluidKit.Controls;assembly=FluidKit"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <controls:SlideTransition x:Key="SlideTransition"/>
        <controls:FlipTransition x:Key="FlipTransition"/>
        <controls:CubeTransition x:Key="CubeTransition"/>
    </Window.Resources>
    <Grid>
        <controls:TransitionPresenter Height="200" HorizontalAlignment="Left" Margin="170,60,0,0" Name="contentControl1" VerticalAlignment="Top" Width="300">
            <StackPanel Height="200" x:Name="stackPanel1" Width="300" Background="Chocolate"/>
            <StackPanel Height="200" x:Name="stackPanel2" Width="300" Background="DarkRed"/>
        </controls:TransitionPresenter>
        <Button Content="Cube Transition" Height="58" HorizontalAlignment="Left" Margin="24,51,0,0" Name="button1" VerticalAlignment="Top" Width="123" Click="button1_Click" />
        <Button Content="Flip Transition" Height="58" HorizontalAlignment="Left" Margin="24,127,0,0" Name="button2" VerticalAlignment="Top" Width="123" Click="button2_Click" />
        <Button Content="Slide Transition" Height="58" HorizontalAlignment="Left" Margin="24,202,0,0" Name="button3" VerticalAlignment="Top" Width="123" Click="button3_Click" />
    </Grid>
</Window>

Une fois dans votre code C#, clique-droit sur référence et prenez "ajouter une référence". Dans l'onglet "Parcourir" sélectionnez le fichier "fluidkit.dll" généré par vos soins comme expliqué plus haut.
De ce point là, une instance d'using permet d'ajouter la librairie à votre code et la possibilité d'implémenter la librairie "Controls.Transition".
Code C#
using FluidKit.Controls;

namespace GranyOS
{
    public partial class MainWindow : Window
    {
        private string _currentlyShowingImage = "stackPanel1";
        public MainWindow(){
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e){
            CubeTransition transition = Resources["CubeTransition"] as CubeTransition;
            if (_currentlyShowingImage == "stackPanel1"){
                transition.Rotation = Direction.LeftToRight;
                contentControl1.Transition = transition;
                contentControl1.ApplyTransition("stackPanel1", "stackPanel2");
                _currentlyShowingImage = "stackPanel";
            }
            else{
                transition.Rotation = Direction.RightToLeft;
                contentControl1.Transition = transition;
                contentControl1.ApplyTransition("stackPanel2", "stackPanel1");
                _currentlyShowingImage = "stackPanel1";
            }
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
            FlipTransition transition = Resources["FlipTransition"] as FlipTransition;
            if (_currentlyShowingImage == "stackPanel1"){
                transition.Rotation = Direction.BottomToTop;
                contentControl1.Transition = transition;
                contentControl1.ApplyTransition("stackPanel1", "stackPanel2");
                _currentlyShowingImage = "stackPanel";
            }
            else{
                transition.Rotation = Direction.RightToLeft;
                contentControl1.Transition = transition;
                contentControl1.ApplyTransition("stackPanel2", "stackPanel1");
                _currentlyShowingImage = "stackPanel1";
            }
        }

        private void button3_Click(object sender, RoutedEventArgs e)
        {
            SlideTransition transition = Resources["SlideTransition"] as SlideTransition;
            if (_currentlyShowingImage == "stackPanel1"){
                transition.Direction = Direction.LeftToRight;
                contentControl1.Transition = transition;
                contentControl1.ApplyTransition("stackPanel1", "stackPanel2");
                _currentlyShowingImage = "stackPanel";
            }
            else{
                transition.Direction = Direction.LeftToRight;
                contentControl1.Transition = transition;
                contentControl1.ApplyTransition("stackPanel2", "stackPanel1");
                _currentlyShowingImage = "stackPanel1";
            }
        }
    }
}

jeudi 16 février 2012

Microsoft Kinect

Le Kinect est un composant utilisé par Microsoft avec leur console XboX360 et déporté par la suite sur les ordinateurs. La version initiale ne peut être connectée au pc que via un câble spécifique alors que la dernière mouture peut se connecter directement en USB et donc de s'affranchir de l'adaptateur.

Kinect Xbox360:

Microsoft Kinect:
La distinction peut se faire facilement grâce au nom affiché sur le matériel. Bien que semblable à la version Xbox, la version PC est légèrement différente dans ses performances. Elle est par exemple capable d'interpréter ce qu'elle voit depuis une distance plus proche.

Depuis le 1 février 2012, le SDK officiel est disponible en téléchargement dans se version finale 1.0 ici et les informations globales relatives au Windows Kinect sur le site Kinect for Windows.

Du fait de sa jeunesse, le SDK 1.0 ne dispose pas encore d'une documentation étoffée, néanmoins un bon moyen de commencer à l'utiliser est de suivre les vidéos disponibles ici et .