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?
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?
Tu devrai trouver quelques éléments de réponse ici :
http://expression.microsoft.com/en-us/cc197138.aspx
Il faut affecter une SkewTransform à la propriété RenderTransform
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
2Cannot convert "SkewTransform"
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:
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.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager