2009-02-10 33 views

Trả lời

8

// trong SharePoint tôi đã thêm một mã nhỏ để thông báo cho SP chạy tập lệnh sau khi mọi phần được tải. Hoạt động như một nét duyên dáng :)

// EDIT

hoặc tốt hơn nhưng các diễn đàn Silverlight khuyên bạn làm điều này: 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! Cảm ơn. – Jeremy

2

Trong Silverlight 4 bạn có thể làm điều đó trong C#, mà không cần loay hoay với và phụ thuộc vào bất kỳ HTML nào.

Ví dụ dưới đây cho thấy cách triển khai nhấp chuột phải để được kiểm soát thực sự, nhưng bạn chỉ có thể tạo một clicktrap nếu bạn chỉ muốn vô hiệu hóa.

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

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

+0

Cảm ơn dain, đây là câu trả lời hay hơn - Để tham khảo "ChangingRectangle" là x: Tên của điều khiển được đề cập cho MainPage.xaml – ghchinoy

4

Như Dain đã đề cập, trong Silverlight 4 bạn có thể làm điều này một cách dễ dàng:

Làm cho cửa sổ điều khiển:

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

Trap click chuột phải trong điều khiển bố cục lưới/bố cục gốc của bạn:

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

Việc nắm bắt
Trong Firefox và Chrome, bạn phải lựa chọn giữa việc có một menu ngữ cảnh hoặc có khả năng mousewheel cuộn. Đáng buồn là bạn không thể có cả hai, hy vọng điều này sẽ thay đổi trong Silverlight 5.

+0

Điều khiển có phải là không cửa sổ không? –

+0

@Niall có nó phải lấp đầy toàn bộ màn hình –

Các vấn đề liên quan