IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

Déformer une Window avec blend


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut Déformer une Window avec blend
    Bonjours,


    Je sais que l'on peut déformer une Window grace à Blend, cependant je n'arrive pas à trouver comment?
    quelqu'un pour me guider svp?

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    Tu devrai trouver quelques éléments de réponse ici :
    http://expression.microsoft.com/en-us/cc197138.aspx

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Il faut affecter une SkewTransform à la propriété RenderTransform

  4. #4
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Je ne trouve pas la propriété RenderTransform,
    j'ai également essayé dans le XAML, sans réussite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cannot convert "SkewTransform"

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Réponse ici:

    http://forums.microsoft.com/MSDN/Sho...09560&SiteID=1

    En gros, tu peux pas faire ce que tu veux

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Réponse ici:

    http://forums.microsoft.com/MSDN/Sho...09560&SiteID=1

    En gros, tu peux pas faire ce que tu veux
    En même temps, ce sujet date de janvier 2006, donc je suis pas sûr que ce soit encore d'actualité...

    En fait j'ai testé : on ne peut effectivement pas faire de RotateTransform sur la fenêtre, mais le SkewTransform fonctionne... enfin, plus ou moins : le cadre de la fenêtre reste rectangulaire

    EDIT: en fait il y a une astuce pour faire à peu près ce qu'on veut... il suffit de tricher un peu : on fait une grande fenêtre transparente, on place dedans une Grid ou autre conteneur, et on fait la transformation sur la Grid au lieu de la faire sur la fenêtre. L'effet est le même que si on avait fait la transformation directement sur la fenêtre. Il faut juste prévoir une fenêtre assez grande pour que les déformations sur la Grid ne la fassent pas sortir de la fenêtre.

    Exemple :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <Window x:Class="testWPF.Window5"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="Window5" Height="450" Width="900"
            AllowsTransparency="True" WindowStyle="None"
            Background="Transparent">
        <Grid Width="300" Height="300" Background="LightBlue">
            <Grid.RenderTransform>
                <TransformGroup>
                    <SkewTransform x:Name="skew" CenterX="150" CenterY="150" AngleX="0" AngleY="0"/>
                    <RotateTransform x:Name="rotation" CenterX="150" CenterY="150" Angle="0"/>
                </TransformGroup>
            </Grid.RenderTransform>
            <StackPanel Orientation="Vertical"
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center">
                <Button Name="button1" Height="23" Width="75">
                    <Button.Triggers>
                        <EventTrigger RoutedEvent="Button.Click">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="skew"
                                                     Storyboard.TargetProperty="AngleX"
                                                     From="0"
                                                     To="-45"
                                                     Duration="0:0:0.2"
                                                     AccelerationRatio="0.2"
                                                     DecelerationRatio="0.2"/>
                                    <DoubleAnimation Storyboard.TargetName="skew"
                                                     Storyboard.TargetProperty="AngleX"
                                                     From="-45"
                                                     To="45"
                                                     Duration="0:0:0.4"
                                                     BeginTime="0:0:0.2"
                                                     AccelerationRatio="0.2"
                                                     DecelerationRatio="0.2"/>
                                    <DoubleAnimation Storyboard.TargetName="skew"
                                                     Storyboard.TargetProperty="AngleX"
                                                     From="45"
                                                     To="0"
                                                     Duration="0:0:0.4"
                                                     BeginTime="0:0:0.6"
                                                     AccelerationRatio="0.2"
                                                     DecelerationRatio="0.2"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Button.Triggers>
                    Skew
                </Button>
                <Button Name="button2" Height="23" Width="75">
                    <Button.Triggers>
                        <EventTrigger RoutedEvent="Button.Click">
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="rotation"
                                                     Storyboard.TargetProperty="Angle"
                                                     From="0"
                                                     To="360"
                                                     Duration="0:0:0.8"
                                                     AccelerationRatio="0.2"
                                                     DecelerationRatio="0.2"/>
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger>
                    </Button.Triggers>
                    Rotate
                </Button>
            </StackPanel>
        </Grid>
    </Window>

    Résultat:
    Images attachées Images attachées  

  7. #7
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Oui mais au final, ce n'est pas la fenêtre que tu déformes, c'est le contrôle placé dedans. Déformé une fenêtre en elle-même, cela ne reste pas possible.

    Maintenant, il faudrait p-e regarder du coté des "Layered Windows", disponible avec le SP1 de VS 2008/.NET 3.5: il semblerait qu'on puisse faire des choses intéressantes à ce niveau mais j'ai pas encore pu creuser.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Thomas Lebrun Voir le message
    Oui mais au final, ce n'est pas la fenêtre que tu déformes, c'est le contrôle placé dedans. Déformé une fenêtre en elle-même, cela ne reste pas possible.
    Certes... mais si le résultat est le même, à la limite on se fout un peu de la façon dont ça a été fait

  9. #9
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    J'ai eu la meme idée que toi Tomlev, J'ai déformé mon conteneur avec ma fenetre transparente, le résultat voulu reste le meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir des UserControl dans une windows avec du C#
    Par sdoula dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 17/03/2010, 14h24
  2. probleme avec une hp3005 avec windows NT
    Par frost80500 dans le forum SharePoint
    Réponses: 1
    Dernier message: 23/03/2007, 08h33
  3. Développement d'une application Windows (avec visual basic)
    Par visualbasic152 dans le forum VB.NET
    Réponses: 14
    Dernier message: 24/01/2007, 17h23
  4. Réponses: 3
    Dernier message: 06/08/2006, 09h02
  5. coordonnées d'une fenêtre avec window.open
    Par neecolas dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 09h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo