xmal文件如下:
<UserControl x:Class="ContextMenu2.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:my="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input.Toolkit"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" >
<!--Excepetcion:Property Contentmenu does not support value the type grid-->
<Canvas x:Name="LayoutRoot" Width="450" Height="400" Background="White">
<TextBlock Text="Right Click ContextMenu in Silverlight 4" FontSize="16" Foreground="Red" Canvas.Top="12" Canvas.Left="12" Height="23" Width="357"></TextBlock>
<TextBox x:Name="tb" Text="Select Text and Right Click" Canvas.Left="59" Canvas.Top="49" Height="26" Width="300" />
<my:ContextMenuService.ContextMenu>
<my:ContextMenu Name="mymenu">
<my:MenuItem Header="Cut" Click="MenuItem_Click"/>
<my:MenuItem Header="Copy" Click="MenuItem_Click"/>
<my:Separator/>
<my:MenuItem Header="Paste" Click="MenuItem_Click"/>
<my:MenuItem x:Name="definemyself" Click="MenuItem_Click">
<my:MenuItem.Header>
<StackPanel Orientation="Horizontal">
<Image Source="image/btn_cab_done_holo.9.png" Width="30" Height="30" />
<TextBlock Text="附带有Image样式" Padding="5"></TextBlock>
</StackPanel>
</my:MenuItem.Header>
</my:MenuItem>
<my:MenuItem Header="Chenkai制作右键菜单Demo" Click="MenuItem_Click"/>
<my:MenuItem x:Name="xx" Header="进入全屏模式" Click="MenuItem_Click"/>
</my:ContextMenu>
</my:ContextMenuService.ContextMenu>
</Canvas>
</UserControl>
cs文件:
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;
namespace ContextMenu2
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
MenuItem menuItem = (MenuItem)sender;
switch (menuItem.Header.ToString())
{
case "Cut":
Clipboard.SetText(tb.SelectedText);
tb.SelectedText = "";
tb.Focus();
break;
case "Copy":
Clipboard.SetText(tb.SelectedText);
tb.Focus();
break;
case "Paste":
tb.SelectedText = Clipboard.GetText();
break;
case "Chenkai制作右键菜单Demo":
MessageBox.Show("Author:chenkai Date:2010年5月27日11:09:51 文章附有源码下载 :)!");
break;
case "进入全屏模式":
xx.Header = FullScreen(menuItem.Header.ToString());
break;
case "取消全屏模式":
xx.Header = FullScreen(menuItem.Header.ToString());
break;
default:
break;
}
mymenu.IsOpen = false;
}
private String FullScreen(String str) {
Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
if (str == "进入全屏模式")
{
str = "取消全屏模式";
}
else {
str = "进入全屏模式";
}
return str;
}
}
}
效果图如下: