serlverlight使用xml创建右键菜单

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;
        }
    }
}

效果图如下:







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值