Kikuts
Messages postés159Date d'inscriptionjeudi 11 janvier 2007StatutMembreDernière intervention 5 novembre 2010
-
3 juil. 2009 à 16:21
silverressources
Messages postés6Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention13 octobre 2009
-
24 août 2009 à 17:11
Bonjour !
Je n'ai pas beaucoup d'expérience en ce qui concerne les évènements.
Je travaille avec Silverlight 3 depuis qq jours. J'ai une image qui me sert de menu que je map avec des ellipses. Quand je survole ces ellipses, la source de l'image (un rond de la taille de l'ellipse) change.
Cela fonctionne. Simplement, l'évènement clic n'existe pas dans les propriétés de l'ellipse. Silverlight 2 et 3 ne disposant pas d'une grande communauté, je peine à trouver des exemples :/
Donc si quelqu'un pourrait me dire comment faire pour rajouter l'évènement en code c#. Il doit y avoir une ligne genre :
onLoad{
monEllipse.onClickEllipse += new onClickEllipse<onClickEllipseEventArgs>(DescriptionDeLaMethodeOnClickEllipse);
}
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 6 juil. 2009 à 17:24
Au fait, dans mon post précédent : "passé" => "basé" (suis un peu fatigué aujourd'hui).
"Changer le nom de la méthode onClick sur les boutons" ? De quoi tu parles ? L'événement s'est toujours appelé Click (Windows Forms / WPF) et s'appelle encore Click.
"Mais les boutons ne peuvent être arrondis comme les rectangles". Tu connais le principe de WPF / Silverlight ? Ils te fournissent les contrôles de base, mais tu peux refaire toi-même le style d'absolument tout. Tu veux un bouton rond qui tourne sur lui-même 24h/24 ?
Et après, tout se fait dans le style. Donc dire que les boutons ne peuvent pas être arrondis, c'est faux. Il faut juste le coder (en gros, tu redéfini un bouton avec ce style comme un rectange à coin arrondis avec un label dessus). Pourquoi ils ne l'ont pas fait de base ? Parce qu'ils ne vont pas s'amuser à faire tous les styles possibles pour chaque élément.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
silverressources
Messages postés6Date d'inscriptionlundi 24 août 2009StatutMembreDernière intervention13 octobre 2009 24 août 2009 à 11:13
Salut Kikuts,
Je sais pas si tu en as encore besoin mais voici le code qui te permet le clic sur une ellipse :
//Ajout de l'evenement clic
ellipse.MouseLeftButtonDown += new MouseButtonEventHandler(ellipse_MouseLeftButtonDown);
//evenement
private void ellipse_MouseLeftButtonDown(object sender, MouseButtonEventArgs args)
{
//On fait disparaitre l'ellipse lors du clic pour tester si l'evenement fonctionne correctement
ellipse.Visibility = Visibility.Collapsed;
}
Voilà, si tu as besoin de quelques sources silverlight 2 & 3, passe sur mon site :
Kikuts
Messages postés159Date d'inscriptionjeudi 11 janvier 2007StatutMembreDernière intervention 5 novembre 2010 6 juil. 2009 à 16:39
lol déjà que je suis obligé d'utiliser un timer pour savoir si l'utilisateur fait un double clic sur 1 row de la grid ... Vont pas s'embéter avec un clic ...
Vive microsoft ... Pas penser à mettre un double clic sur un datagrid.row ... Changer le nom de la méthode onClick sur les boutons ... Super coool ! heureusement que SL gère la transparence ... Mais les boutons ne peuvent être arrondis comme les rectangles ... Donc encore une fois c'est du bricolage du dimanche ça ... ^^
Merci quand même ; )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Kikuts
Messages postés159Date d'inscriptionjeudi 11 janvier 2007StatutMembreDernière intervention 5 novembre 2010 7 juil. 2009 à 10:28
Je suis d'accord, mais, pour les boutons, ça aurait été vraiment un grand plus d'ajouter la propriété radiusX et radiusY.
Et un développeur feignant ... c'est courant ;) c'est vrai que je peux redéfinir chaque composant, mais malheureusement, mon chef de projet ne veux pas que je passe des jours à prendre en main la manip juste pour un bouton (je suis étudiant et novice sur silverlight et il y a 4mois, je ne connaissais même pas silverlight et wpf ... quel veille technologie ...lol)
Faudra que j'essaye un weekend de m'y mettre. Mais dans cet exemple, il ne parle pas des states. En effet, j'avais cru comprendre qu'il existait sous Blend, un endroit qui ressemble un peu à flash (avec image 1, image 2 qui correspondent à onMouseOver, OnMouseOut) j'espère être assez clair ...
Et oui, je me suis tromper : la propriété click existe bien, j'ai simplement fait l'amalgame avec l'évenement "MouseLeftBoutonDown" (comme il existait sur rectangle, ellipse et qu'ils n'avaient pas Click ...)
Excuse moi krimog et merci pour ta réponse ! Se prendre des coups de pieds au cul, ça peut que vous pousser en avant (je te taquine jsais bien que ct pas méchant mais juste une remarque constructif ! ;)
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 7 juil. 2009 à 11:05
Bah c'est vrai que pour le coup, c'est un peu stupide de pas avoir créé l'événement MouseLeftButtonDoubleClick pour les FramworkElement.
Cependant, en ce qui concerne le fait d'ajouter des propriétés RadiusX et RadiusY, ce serait plutôt l'esprit de WinForms : tu peux personnaliser un composant si on te permet de le faire.
Là, le principe c'est de séparer le code de l'interface graphique. Tu crées ton code, tu crées ta fenêtre avec tes boutons tout moches (quoi qu'on a déjà vu plus moche que les boutons de base de Silverlight), et ton programme marche. D'un autre côté, toi, ou un designer, crée les styles et les appliquent à ton interface graphique toute moche (mais qui marchait sans problème) pour en faire une application web toute jolie et qui marche !
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Kikuts
Messages postés159Date d'inscriptionjeudi 11 janvier 2007StatutMembreDernière intervention 5 novembre 2010 7 juil. 2009 à 11:25
Ok, dans mon rôles d'intégrateur (design et dvlpt ^^) ça veut dire que la création des composants sera une étape obligatoire
Pas un problème ! Et moi je trouve les composants de base plutôt pas mal :) le mouseOver, mouseOut, le clic enfoncé sont géré déjà géré et pourvu qu'on developpe une appli dans les tons bleu et on est content
Bonne journée Krimog ! merci pour tout ! Par ailleurs des fois que tu saches, c'est mieux de se servir de l'isolate storage ou c'est possible de faire comme d'habitude avec l'url : url.xaml'id=4
(pour précision, je n'ai besoin de passer qu'une variable !)
Ca peut paraître bête, mais je ne trouve rien sur le framework de navigation de sl 3 ou bien le passage de valeur entre 2 formulaires sur le net.
Pour plus tard, lorsque j'ai plus d'info à passer entre plusieurs pages, faut il obligatoirement utiliser l'isolate storage de silverligth ? ou existe t il des moyens plus simples à mettre en place ?
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 7 juil. 2009 à 13:55
Ah, là, désolé, mais je ne vais pas pouvoir t'aider. J'ai des connaissances en WPF, mais n'ai que des notions de base en Silverlight.
Or en WPF, on est pas trop du genre se poser ce type de questions ^^
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Kikuts
Messages postés159Date d'inscriptionjeudi 11 janvier 2007StatutMembreDernière intervention 5 novembre 2010 24 août 2009 à 12:11
Cool j'ai hâte de voir ça ! pour la proj et les sprites.
Pour le clic de l'ellipse, je serai un bien piètre developpeur si au bout de 2 mois je n'avais pas trouver comment faire
Par contre tu pourras peut être m'aider sur 2, 3 points :)
- comment passer "des" variables par URL ? j'arrive avec 1 grâce au NavigationService.Navigate(uri...) mais avec plusieurs variables je n'arrive pas. Donc comment faire autrement si ce n'est pas possible ? J'ai entendu parler d'isolate storage mais ça me semble complexe à mettre en oeuvre :p
- comment scinder un fichier svc : la classe de service qui décrit l'interface IService. Car elle fait déjà 800 lignes ^^ et ça va qu'empirer lol j'ai essayé avec les classe partial mais mon databaseobjetcontext n'est plus visible :( donc mes requêtes linq to sql byebye ^^
une dernière pour la route :D
- comment atteindre la page parente au contentFrame ? j'ai essayé ceci : ((MainPage)this.Parent).hlConnexion.Content (pour modifier le nom du lien connexion en deconnexion)
Voilà ! Par ailleurs, ça peut te donner des idées pour des tuto ou exemples sur ton site :) j'irai le voir ce soir en rentrant du boulot !