2012-05-25 5 views
0

Dans mon application Gadget, j'ai un problème avec le menu contextuel du gadget standard. Le problème causé par le contrôle Silverlight, quand je clique sur le bouton droit contrôle Silverligh gérer l'événement contextmenu.Menu contextuel du gadget Windows

Donc d'abord, ma solution était de mettre sur le contrôle de la bande transprent silverlight control (tableau). Eh bien de cette façon, j'ai eu un bon menu contextuel de gadget de travail et ne fonctionne pas le contrôle silverlight. L'étape suivante consistait donc à rendre invisible le contrôle web transperent et à gérer le menu contextuel. Comme ça.

HTML

<body oncontextmenu="ContextMenu();" onload="init();" > 

JavaScript

ContextMenu() 
{ 
var vis = document.getElementById('overlapControl').style.visibility; 
if (vis == "hidden") { 
    document.getElementById('overlapControl').style.visibility = "visible"; 
    window.event.returnValue = false; 
} 

Il travaille avec quelques problèmes. Vous devez effectuer deux clics sur le bouton droit et un événement pour masquer le contrôle transpanent. Le second n'est pas un gros problème, je peux utiliser l'événement onmouseover par exemple pour cacher le contrôle. Mais un premier est une vraie douleur dans le cou. Il semble qu'il n'y ait aucun moyen d'afficher le menu contextuel en un seul clic.

Des idées pour le faire fonctionner. ou peut-être une autre meilleure solution.

Répondre

1

Avez-vous essayé le mode sans fenêtre? Here est un exemple un peu plus compliqué, mais devrait vous donner une idée.

+0

Oui est là. –

+0

je vous remercie pour cette référence. voici un plus récent. http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2008/05/28/how-to-handle-rightclick-mouse-event-in-silverlight-take-2.aspx dans un premier coup d'oeil j'ai l'idée comment fournir l'événement de clic jusqu'au code managé, mais est-il possible alors de déclencher l'événement de menu de contexte de gadget du contrôle argenté? –

+0

Je ne pense pas que cet exemple m'ait rapproché de la solution. Cela me permet simplement de gérer l'événement de clic de souris dans le code managé, mais comme je le comprends, il n'y a aucun moyen d'ouvrir le menu contextuel du gadget à partir du contrôle silverlight (code managé). –