2009-02-10 121 views

回答

8

//在SharePoint中我添加了一個小代碼來告訴SP在加載每個零件後運行腳本。工程就像一個魅力:)

//編輯

或更好,但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 2009-02-10 18:34:22

2

在Silverlight 4中,你可以做它在C#中,不亂搞並依賴於任何HTML。

下面的示例顯示瞭如何實現右鍵單擊以實際由控件使用,但是如果只想禁用,則只需創建clicktrap即可。

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

謝謝dain,這是一個更好的答案imo - 參考「ChangingRectangle」是x:MainPage.xaml所討論的控件的名稱 – ghchinoy 2012-08-13 17:42:25

4

至於戴恩所提到的,在Silverlight 4,你可以做到這一點很容易:

使控制窗戶:

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

陷阱右鍵在你的根網格/佈局控件中:

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

漁獲
在Firefox和Chrome,你必須有一個上下文菜單有鼠標滾輪滾動功能之間進行選擇。可悲的是你不能同時擁有這兩個,希望這會改變在Silverlight 5中。

+0

控件是否必須是無窗口的? – 2011-01-24 14:33:00