2012-05-25 2 views
0

가젯 응용 프로그램에 표준 가젯 컨텍스트 메뉴가 표시되는 데 문제가 있습니다. 실버 라이트 컨트롤 때문에 오른쪽 버튼 Silverligh 컨트롤이 contextmenu 이벤트를 처리 할 때 발생하는 문제입니다.Windows 가젯 컨텍스트 메뉴

먼저 내 솔루션은 실버 라이트 컨트롤 transprent 웹 컨트롤 (테이블) 위에 놓는 것이 었습니다. 글쎄 그 방법은 잘 작동하는 가제트 컨텍스트 메뉴와 실버 라이트 컨트롤을 작동하지. 다음 단계는 transperent 웹 컨트롤을 보이지 않게하고 oncontextmenu를 처리하는 것이 었습니다. 이렇게

그것은 몇 가지 결함으로 일하고

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

HTML

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

자바 스크립트. 두 개의 오른쪽 버튼 클릭과 투명 이벤트 제어를 숨기는 이벤트를 만들어야합니다. 두 번째 문제는 큰 문제가 아니며, 예를 들어 컨트롤을 숨기기 위해 onmouseover 이벤트를 사용할 수 있습니다. 그러나 첫 번째 것은 목에 통증이 있습니다. 한 번의 클릭으로 상황에 맞는 메뉴를 표시 할 수있는 방법이없는 것 같습니다.

아이디어를 얻는 방법에 대한 아이디어. 또는 다른 더 나은 해결책일지도 모른다.

답변

1

창없는 모드를 사용해 보셨습니까? Here은 좀 더 복잡한 예이지만 몇 가지 아이디어를 제공해야합니다.

+0

가 있습니다. –

+0

그 참고에 감사드립니다. 여기가 최근의 것입니다. http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2008/05/28/how-to-handle-rightclick-mouse-event-in-silverlight-take-2.aspx 첫 번째 한 번 클릭 이벤트를 관리되는 코드에 제공하는 방법을 알게되었지만 실버 라이트 컨트롤에서 가젯 컨텍스트 메뉴 이벤트를 실행할 수 있습니까? –

+0

이 예제가 해결책에 더 가깝다고 생각하지 않습니다. 단지 관리되는 코드에서 마우스 클릭 이벤트를 처리 할 수있게하지만 Silverlight 컨트롤 (관리 코드)에서 가젯 컨텍스트 메뉴를 열 수있는 방법이 없다는 것을 알고 있습니다. –