分別通過後臺和前臺兩種方式說明在Silverlight中右鍵菜單的使用
首先要安裝Silverlight Toolkit,在項目中添加對System.Windows.Controls.Input.Toolkit 程序集的引用
1、直接在XAML中定義右鍵菜單,在XAML中添加命名空間xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit",下面代碼是爲StackPanel添加右鍵菜單
<StackPanel Orientation="Horizontal" >
<TextBlock Text="1234" Margin="5,0,0,0"/>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:ContextMenu.Items>
<toolkit:MenuItem Header="啓用" />
<toolkit:MenuItem Header="禁用" />
</toolkit:ContextMenu.Items>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>
2、通過後臺代碼添加右鍵菜單,如下
void Loaded(object sender, RoutedEventArgs e)
{
ContextMenu contextMenu = new ContextMenu();
contextMenu.Background = new SolidColorBrush(Colors.Transparent);
MenuItem item1 = new MenuItem();
item1.Header = "紅色";
item1.Click += new RoutedEventHandler(item_Click);
contextMenu.Items.Add(item1);
MenuItem item2 = new MenuItem();
item2.Header = "藍色";
item2.Click += new RoutedEventHandler(item_Click);
contextMenu.Items.Add(item2);
MenuItem item3 = new MenuItem();
item3.Header = "綠色";
item3.Click += new RoutedEventHandler(item_Click);
contextMenu.Items.Add(item3);
ContextMenuService.SetContextMenu(txtName, contextMenu);
}
void item_Click(object sender, RoutedEventArgs e)
{
MenuItem item = sender as MenuItem;
//ContextMenu parent = item.Parent as ContextMenu;
switch (item.Header.ToString())
{
case "紅色":
ellipse1.Fill = new SolidColorBrush(Colors.Red);
break;
case "藍色":
ellipse1.Fill = new SolidColorBrush(Colors.Blue);
break;
case "綠色":
ellipse1.Fill = new SolidColorBrush(Colors.Green);
break;
default:
break;
}
}