Click here to Skip to main content
15,885,366 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
See more:
Hi friends,

Is there any way to remove right click menu in Silverlight applications. I am following MVVM pattern in my project, and my solution contains several silverlight projects in it. I need a common solution to remove right click menu in all silverlight projects. Can any one help me. . .
Posted

1 solution

In the code behind for your main page (or your root visual) simply hook the MouseRightButtonDown event or override the OnMouseRightButtonDown function. In either case, set the e.Handled property to true to prevent further processing.

C#
protected override void OnMouseRightButtonDown(MouseButtonEventArgs e)
{
    e.Handled = true;
     // Best not to call the base method in this case because we don't want that behavior
     //base.OnMouseRightButtonDown(e);
}


You can also use this to pop a custom right-click menu if you would like. In that case you use the mouse coordinates as the top-left corner of your context menu object.

You can override this again at a lower level if you wanted. So if you have a treeview, for example, that you wanted a custom context menu to appear, you could hook the event on that container (grid, panel, treeview, etc) and pop your custom menu. Mouse events start at the control highest in the Z-Order (which is the lowest in the hierarchy) under the pointer and bubble "up" the hierarchy tree until they are handled or they get to the app and go unhandled.

Hope that helps.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900