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

Silverlight Discussion :

Faire disparaitre un bouton de l'écran d'affichage


Sujet :

Silverlight

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 20
    Points
    20
    Par défaut Faire disparaitre un bouton de l'écran d'affichage
    Bonjour,

    me revoila une nouvelle fois avec un nouveau problème mais cette fois si coté XAML.
    Mon application est constitué de boutons tout à fait basiques et lorsque j'ai fini de rentrer certains paramètres et que je clique sur le bouton "Play", tous les boutons, y compris le "Play" disparaissent en dehors de l'écran par le biais d'une translation.
    Les boutons sont à l'intérieur d'un canevas. Lors du clique sur le bouton "Play", cela lance une animation de translation.
    Mon application a été créé sous Expression Blend 3 ce qui m'a évité de taper le code XAML et l'animation est lancée par le biais du code behind (C#).

    Je pensais avoir fait une mauvaise manip en créant mon projet donc j'ai en refais un juste pour tester si le bouton disparaissait lorsqu'il sortait du canevas.
    Voici le code que j'ai produis par le biais de MS Expression Blend 3:
    Code : 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
    <UserControl
    	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    	x:Class="SilverlightApplication1.MainPage"
    	Width="640" Height="480">
    	<UserControl.Resources>
    		<Storyboard x:Name="Storyboard1">
    			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="button" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
    				<EasingDoubleKeyFrame KeyTime="00:00:01" Value="429"/>
    			</DoubleAnimationUsingKeyFrames>
    		</Storyboard>
    	</UserControl.Resources>
     
    	<Canvas x:Name="LayoutRoot" Background="#FF767676">
    		<Button x:Name="button" Height="64" Width="152" RenderTransformOrigin="0.5,0.5" Content="Button" Canvas.Left="224" Canvas.Top="192">
    			<Button.RenderTransform>
    				<TransformGroup>
    					<ScaleTransform/>
    					<SkewTransform/>
    					<RotateTransform/>
    					<TranslateTransform/>
    				</TransformGroup>
    			</Button.RenderTransform>
    		</Button>
    	</Canvas>
    </UserControl>
    Une question me vient donc à l'esprit. Peut-on faire disparaitre un objet (bouton, rectangle, etc...) en le positionnant en dehors du canevas le contenant ?

    Cordialement, Tehko

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Abonnes toi à l'évènement Completed de ton Storyboard et dans la callback mets la Visibitlity de ton bouton à Collapsed.

    Pour que ça rende mieux il faudrait aussi que tu animes Opacity en même que ton bouton se déplace.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Merci d'avoir répondu aussi rapidement Skyounet.

    J'ai fait ce que tu m'as dit et en effet il disparait une fois sorti du canevas.

    Y a-t-il la possibilité qu'il disparaisse au fur et à mesure de sa sortie du canevas plutôt que de jouer d'un l'opacité ?

    En d'autres mots, mon canevas joue le rôle d'écran et dès que quelque chose en sort totalement l'objet en question n'apparait plus ou à moitié s'il ne sort qu'à moitié.

  4. #4
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Tu peux jouer avec la propriété Clip du Canvas
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  5. #5
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Tehko Voir le message
    Merci d'avoir répondu aussi rapidement Skyounet.

    J'ai fait ce que tu m'as dit et en effet il disparait une fois sorti du canevas.

    Y a-t-il la possibilité qu'il disparaisse au fur et à mesure de sa sortie du canevas plutôt que de jouer d'un l'opacité ?

    En d'autres mots, mon canevas joue le rôle d'écran et dès que quelque chose en sort totalement l'objet en question n'apparait plus ou à moitié s'il ne sort qu'à moitié.
    Est-ce que ton Canvas est le Canvas principal de ton application ? C'est à dire, quand ton Bouton sort de ton Canvas il est censé être en dehors de l'application ou alors il se retrouve sur une autre partie de ton application ? (je sais pas si je suis clair).
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    @Samothep:

    J'ai essayé de jouer avec la propriété que tu m'as proposé mais plus rien ne s'affiche. J'ai tenté cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <Canvas x:Name="LayoutRoot" Background="#FF767676">
            <Canvas.Clip>
                <RectangleGeometry/>
            </Canvas.Clip>      
                <Button x:Name="button" Height="64" Width="152" RenderTransformOrigin="0.5,0.5" Content="Button" Canvas.Left="224" Canvas.Top="192">
    			<Button.RenderTransform>
    				<TransformGroup>
    					<ScaleTransform/>
    					<SkewTransform/>
    					<RotateTransform/>
    					<TranslateTransform/>
    				</TransformGroup>
    			</Button.RenderTransform>
    		</Button>
    	</Canvas>
    Je débute tout juste en XAML donc j'ai pas de bonnes notions d'autant plus que j'apprends de moi-même sur internet...
    Quand je reviens sous Expression Blend3 après avoir modifier le code sous VS2008 et que je remets à jour, tout disparait (et tout revient normalement après avoir supprimé mes trois lignes de code concernant la propriété clip.

    @Skyounet: Oui c'est en effet le Canvas principal de l'application.

  7. #7
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Tehko Voir le message
    @Skyounet: Oui c'est en effet le Canvas principal de l'application.
    Dans ce cas là dans le html qui host ton contrôle Silverlight, tu peux définir des tailles fixes pour ton application (au lieu de 100%).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
    Remplace les 100% par la taille de ton application.
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Ok mais j'ai oublié de mentionner que j'avais créé un projet "Application Silverlight 3" sous Expression Blend 3 et non pas un projet "Application et Site Web Silverlight 3" et que par conséquent je n'ai pas la page Default.html

    Est-ce que tu sais si il y a possibilité de transférer l'intégralité de mon projet "App Silverlight 3" dans un projet "Application et Site Web Silverlight 3" sans perdre les Storyboards ?

    Autrement j'attendrai une réponse de Samoteph concernant la propriété clip.


    Entre temps, j'ai essayé de transférer mon projet et ça a fonctionné. Ta solution m'a bien aidé.

    Un grand merci à toi Skyounet.
    En fait mon problème avec le storyboard venait du fait que je faisais un appel dans le code behind de l'événement Completed.

    Ceci est résolu mais j'aimerais tout de même savoir utiliser la propriété Clip pour une future utilisation...

  9. #9
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    En fait la propriété Clip te permet de Clipper ton Canvas c'est à dire de ne plus afficher ce qui sort de la forme que tu as fixé dans la propriété Clip. Tu a mis un RectangleGeometry mais tu pourrais mettre une Ellipse ou même un Path. En revanche pour que cela fonctionne il te faut quand même lui donner une taille :

    <RectangleGeometry Rect="0,0,100,100">
    Pour le reste du post, j'étais un peu à coté de la plaque
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Ok, merci de l'info.

    Je testerai ça à l'occasion.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/03/2008, 10h41
  2. Comment griser ou faire disparaitre le bouton Maximize ?
    Par ero-sennin dans le forum Composants VCL
    Réponses: 14
    Dernier message: 13/11/2007, 10h37
  3. Faire disparaitre un bouton apres clic
    Par chris.lechat dans le forum Flash
    Réponses: 4
    Dernier message: 28/03/2007, 20h27
  4. Faire "disparaitre" des boutons
    Par kevinf dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 06/03/2007, 14h32
  5. Faire disparaitre un bouton!
    Par manuaccess10 dans le forum IHM
    Réponses: 11
    Dernier message: 02/12/2005, 07h28

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