Latest News

  • Super Tower Defense 2 Game
    Sep 03, 2010

    New to the games section is Super Tower Defense 2. Featuring more maps, new units and bigger explosions.

  • Super Cards Online Multiplayer Game
    Aug 13, 2010

    Released today in the games section is the new Super Cards multiplayer card game. The aim of the game is to get rid of all your playing cards before your opposition.

  • Silverlight Online Chat
    Jul 24, 2010

    Today we launch the new Silverlight Live Chat application demonstrating the Liquid RichTextBox and Emoticon replacements.

  • New Super Shoot Em Up 2 Game
    Jun 29, 2010

    Added to the Games section is the new Super Shoot 'Em Up 2 game. Take control of your tank with the aim to defeat the computer controlled opponents. Features all new weapons, levels and Battle Mode!

  • Silverlight 4 Controls V5.3.2 Released
    Jun 28, 2010

    This release contains several fixes raised in the forums.

Context Menu with the Right Mouse Button Events

Introduced in Silverlight 4 are several new events, two of these MouseRightButtonDown and MouseRightButtonUp relate to the right mouse button.  With these new events it is now easy to implement a right click context menu.

Right Click Context Menus

<UserControl x:Class="RightMouseClickContextMenu.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:liquidMenu="clr-namespace:Liquid;assembly=Liquid.Menu"
    mc:Ignorable="d">
    <Canvas x:Name="LayoutRoot" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" MouseRightButtonDown="LayoutRoot_MouseRightButtonDown" MouseLeftButtonDown="LayoutRoot_MouseLeftButtonDown">
        <TextBlock Canvas.Left="50" Canvas.Top="50" Text="Click your right mouse button!" FontSize="20" />
        <liquidMenu:Menu x:Name="popupMenu" ItemSelected="MenuList_ItemSelected" Visibility="Collapsed">
            <liquidMenu:MenuItem ID="cut" Icon="images/cut.png" Text="Cut" Shortcut="Ctrl+X" />
            <liquidMenu:MenuItem ID="copy" Icon="images/copy.png" Text="Copy" Shortcut="Ctrl+C" />
            <liquidMenu:MenuItem ID="paste" Icon="images/paste.png" Text="Paste" Shortcut="Ctrl+V" />
            <liquidMenu:MenuDivider />
            <liquidMenu:MenuItem ID="new" Text="New">
                <liquidMenu:Menu>
                    <liquidMenu:MenuItem ID="pdf" Icon="images/pdf.png" Text="PDF Document" />
                    <liquidMenu:MenuItem ID="excel" Icon="images/xls.png" Text="Excel Spreadsheet" />
                    <liquidMenu:MenuItem ID="word" Icon="images/doc.png" Text="Word Document" />
                </liquidMenu:Menu>
            </liquidMenu:MenuItem>
        </liquidMenu:Menu>
    </Canvas>
</UserControl>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

using Liquid;

namespace RightMouseClickContextMenu
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void MenuList_ItemSelected(object sender, MenuEventArgs e)
        {
            switch (e.Tag.ToString())
            {
                case "cut":
                    // TODO: Cut functionality
                    break;
                case "copy":
                    // TODO: Copy functionality
                    break;
                default:
                    break;
            }
            popupMenu.Hide();
        }

        private void LayoutRoot_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            Point p = e.GetPosition(this);

            Canvas.SetLeft(popupMenu, p.X);
            Canvas.SetTop(popupMenu, p.Y);
            popupMenu.Show();

            e.Handled = true;
        }

        private void LayoutRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            popupMenu.Hide();
        }
    }
}


Here we are using the Liquid Popup Menu control for our context menu.  When the MouseRightButtonDown event occurs we work out the X/Y position of the mouse and position/show the context menu.

It is important to set e.Handled = true when we have finished in the event handler in order to ensure Silverlight does not show the default Silverlight Context menu.

Your Comments

Serge posted

Ok it' work with Icon="../images/cut.png



But about <StackPanel>


Serge posted

It's very nice RightClickMenu but I got 2 questions.


1) It's possible to use it in <StackPanel> rather <Canvas>?


2) I create a images directory in the SilverLight Project with icones.  But I cannot see those icones in my menu.  I try a lot of paths : images/cut.png, /images/cut.png, ~/images/cut.png, etc.  Nothing work.  Any Idea?



THank a lot and congradulation about your vers usuful tools in SL 4.


 

Post your Comments

Rate this page: 

1 Star 2 Star 3 Star 4 Star 5 Star
12 Ratings / 2.8 Average

Ultimate Gamers

  • 1 Gh0sT
  • 2 stig
  • 3 dhoz
  • 4 seyhmusss
  • 5 RadiateLogic
  • 6 bigblue531
  • 7 janso
  • 8 DutchRemco
  • 9 Gendibal
  • 10 dan

  • See the full chart here!

Silverlight Controls

  • Rich TextBox

    Create and edit rich content with this slick and expandable Rich TextBox...

  • TreeView

    This easy to use TreeView comes with drag and drop, sorting, searching and much more...

  • Context Menu

    You too can have cool popup context menus in your Silverlight applications...

  • Resizable Dialog

    Draggable and resizable popup dialogs are what serious Silverlight developers need...

  • Spell Checker

    Real-time spell checking in Silverlight? We did it first here...