2009-02-10 30 views

Antwort

8

// im SharePoint Ich habe einen kleinen Code hinzugefügt, um SP anzuweisen, das Skript auszuführen, nachdem jedes Teil geladen wurde. Funktioniert wie ein Zauber :)

// EDIT

oder besser noch das Silverlight-Forum empfiehlt Ihnen dies zu tun: 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

Genius! Vielen Dank. – Jeremy

2

In Silverlight 4 Sie es in C# tun können, ohne das Hantieren mit und abhängig von HTML sein.

Das folgende Beispiel zeigt, wie Sie den Rechtsklick implementieren, um von einem Steuerelement tatsächlich verwendet zu werden. Sie können jedoch nur einen Klick erstellen, wenn Sie nur deaktivieren möchten.

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; 
    } 
} 

Referenz: http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx#rightclick

+0

Danke dain, das ist eine bessere Antwort imo - Als Referenz "ChangingRectangle" ist das x: Name des betreffenden Steuerelements für MainPage.xaml – ghchinoy

4

Als Dain erwähnt, in Silverlight 4 Sie dies leicht tun können:

die Kontrolle fensterlos Fabrikat:

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

Falle der rechten Maustaste in Ihrem Root-Grid/Layout-Steuerelement:

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

Der Fang
In Firefox und Chrome Sie zwischen mit einem Kontextmenü oder mit Mausrad Scroll-Funktionen zur Auswahl. Leider können Sie nicht beide haben, hoffentlich ändert sich das in Silverlight 5.

+0

Muss die Steuerung fensterlos sein? –

+0

@Niall Ja, es muss den gesamten Bildschirm ausfüllen –