2009-02-10 12 views
8

पर दायाँ क्लिक अक्षम करें हम एक कियोस्क प्रकार परिदृश्य में चांदी की रोशनी का उपयोग कर रहे हैं। क्या Silverlight कॉन्फ़िगरेशन संवाद दर्ज करने के लिए दायाँ क्लिक क्षमता अक्षम करने का कोई तरीका है?रजत रोशनी

उत्तर

8

// SharePoint में मैंने प्रत्येक भाग लोड होने के बाद स्क्रिप्ट चलाने के लिए एसपी को बताने के लिए एक छोटा कोड जोड़ा है। एक आकर्षण :) की तरह काम करता

// संपादित

या बेहतर अभी तक Silverlight मंच की सिफारिश की आप ऐसा करते हैं: Silverlight Forum

<div id="silverlightObjDiv"> 
    <!-- silverlight object here --> 
</div> 

<script> 
_spBodyOnLoadFunctionNames.push ('setupElement'); 

function setupElement() 

{ 

document.getElementById('silverlightObjDiv').oncontextmenu =  disableRightClick; 

} 

function disableRightClick(e) { 
if (!e) e = window.event; 
if (e.preventDefault) { 
    e.preventDefault(); 
} else { 
    e.returnValue = false; 
} 
} 
</script> 
+0

प्रतिभा! धन्यवाद। – Jeremy

2

सिल्वरलाइट 4 में आप सी # में कर सकते हैं, साथ नगण्य बिना और किसी भी एचटीएमएल पर निर्भर होना।

नीचे दिया गया उदाहरण दिखाता है कि वास्तव में नियंत्रण द्वारा उपयोग किए जाने के लिए राइट क्लिक को कैसे कार्यान्वित किया जाए, लेकिन आप केवल एक क्लिकट्रैप बना सकते हैं यदि आप केवल अक्षम करना चाहते हैं।

public partial class MainPage : UserControl 
{ 
     public MainPage() 
     { 
      InitializeComponent(); 

      // wire up the event handlers for the event on a particular UIElement 
      ChangingRectangle.MouseRightButtonDown += new MouseButtonEventHandler(RectangleContextDown); 
      ChangingRectangle.MouseRightButtonUp += new MouseButtonEventHandler(RectangleContextUp); 
     } 

    void RectangleContextUp(object sender, MouseButtonEventArgs e) 
    { 
     // create custom context menu control and show it. 
     ColorChangeContextMenu contextMenu = new ColorChangeContextMenu(ChangingRectangle); 
     contextMenu.Show(e.GetPosition(LayoutRoot)); 
    } 

    void RectangleContextDown(object sender, MouseButtonEventArgs e) 
    { 
     // handle the event so the default context menu is hidden 
     e.Handled = true; 
    } 
} 

संदर्भ: http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx#rightclick

+0

धन्यवाद डेन, यह एक बेहतर उत्तर आईएमओ है - संदर्भ के लिए "चेंजिंगरेक्टंगल" x है: MainPage.xaml – ghchinoy

4

Dain उल्लेख किया है, सिल्वरलाइट 4 में आप यह आसानी से कर सकते हैं:

<param name="windowless" value="true" /> 

जाल राइट क्लिक:

नियंत्रण खिड़की बनाओ आपके रूट ग्रिड/लेआउट नियंत्रण में:

public MainPage() 
{ 
    LayoutRoot.MouseRightButtonDown += (s, e) => { e.Handled = true; }; 
} 

पकड़
फ़ायरफ़ॉक्स और क्रोम में आप एक संदर्भ मेनू या होने माउसव्हील स्क्रॉल क्षमताओं होने के बीच चयन करने के लिए है। अफसोस की बात है कि आप दोनों नहीं हो सकते हैं, उम्मीद है कि यह सिल्वरलाइट 5 में बदल जाएगी।

+0

के लिए प्रश्न में नियंत्रण का नाम क्या नियंत्रण खिड़की रहित होना चाहिए? –

+0

@Niall हाँ इसे पूरी स्क्रीन भरनी है –

संबंधित मुद्दे