The Context menu is part of the Silverlight Toolkit for Windows Phone controls which can be downloaded from the codeplex site
silverlight.codeplex.com
When the user holds down on a item / panel / control fro few seconds , a pop up menu is opened which shows some options ..
One of the simple scenario where context menu is used in Wndows Phone is when you want to pin the App to the Start screen or unpin it from the start screen .
Context Menu in Windows Phone
To create , the context menu dynamically , follow the below steps
1. Add the reference to the namespace Microsoft.Phone.Controls;
2. Create an instance of Context Menu
ContextMenu PopUpMenu = new ContextMenu();
3. Create Menu Items and also the event handler for the Click event of menu item
MenuItem item1 = new MenuItem() { Header = "Android" }; item1.Click += new RoutedEventHandler(menuItem1_Click); MenuItem item2 = new MenuItem() { Header = "Windows Phone" }; item2.Click += new RoutedEventHandler(menuItem1_Click); MenuItem item3 = new MenuItem() { Header = "iPhone" }; item3.Click += new RoutedEventHandler(menuItem1_Click);
4. Add the menu items to the Context Menu
PopUpMenu.Items.Add(item1); PopUpMenu.Items.Add(item2); PopUpMenu.Items.Add(item3);
5. Set the Context Menu for the Items , In this example , i use the text box
ContextMenuService.SetContextMenu(this.textBox1, PopUpMenu);
So when the user holds on the text box for few seconds , the context menu will show the menu items and when the user click on one of the memu item , it is copied to the textbox .
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { ContextMenu PopUpMenu = new ContextMenu(); MenuItem item1 = new MenuItem() { Header = "Android" }; item1.Click += new RoutedEventHandler(menuItem1_Click); MenuItem item2 = new MenuItem() { Header = "Windows Phone" }; item2.Click += new RoutedEventHandler(menuItem1_Click); MenuItem item3 = new MenuItem() { Header = "iPhone" }; item3.Click += new RoutedEventHandler(menuItem1_Click); PopUpMenu.Items.Add(item1); PopUpMenu.Items.Add(item2); PopUpMenu.Items.Add(item3); ContextMenuService.SetContextMenu(this.textBox1, PopUpMenu); } void menuItem1_Click(object sender, RoutedEventArgs e) { MenuItem itm = (sender as MenuItem); textBox1.Text = itm.Header.ToString(); }
<iframe width=”420″ height=”315″ src=”http://www.youtube.com/embed/q3YtFVe5bnE” frameborder=”0″></iframe>
1 Comment
Thanks a lot, man!