silverlight:向TextBox添加右键菜单,菜单包括复制、粘贴、剪切、选择全部等四项功能!
2012-09-25 16:39
831 查看
这里已将其封装成为一个类,该类只需传入TextBox,即可为其生成右键菜单,并具有相应的功能,具体代码,一会儿贴上,使用方法,附于代码下方,另外还有相关图标,但不知道怎么传附件,呵呵,所以图片可能传不了了,有想要的可以给我说下。
先上个效果图:
下面是整个源代码:
/// <summary> /// 该类负责向TextBox添加右键菜单,菜单包括复制、粘贴、剪切、选择全部四项 /// </summary> public static class CreatMenuForTextBox { // 菜单 static ContextMenu menu; //TextBox static TextBox textbox; /// <summary> /// 为textBox添加右键菜单 /// </summary> /// <param name="textBox">所要添加的TextBox</param> public static void creatMenu(TextBox textBox) { menu = new ContextMenu(); menu.Items.Add(getItem("剪切", "../Images/CutHS.png")); menu.Items.Add(getItem("复制", "../Images/CopyHS.png")); menu.Items.Add(getItem("粘贴", "../Images/PasteHS.png")); menu.Items.Add(new Separator()); menu.Items.Add(getItem("选择全部", null)); ContextMenuService.SetContextMenu(textBox, menu); textbox = textBox; } /// <summary> /// 得到一个菜单项 /// </summary> /// <param name="header">菜单项的名字</param> /// <param name="imagePath">菜单项的图标</param> /// <returns></returns> private static MenuItem getItem(string header, string imagePath) { MenuItem item = new MenuItem(); item.Header = header; if (imagePath != null) { Image im = new Image(); im.Source = (new ImageSourceConverter()).ConvertFromString(imagePath) as ImageSource; item.Icon = im; } item.Click += new RoutedEventHandler(item_Click); return item; } /// <summary> /// 点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> static void item_Click(object sender, RoutedEventArgs e) { MenuItem menuItem = (MenuItem)sender; try { execute(menuItem.Header.ToString()); } catch (Exception) { } textbox.Focus(); menu.IsOpen = false; } /// <summary> /// 具体执行操作,之所以将其提出来,是为了捕捉异常 /// </summary> /// <param name="selected">菜单项的名称</param> static void execute(string selected) { switch (selected) { case "剪切": Clipboard.SetText(textbox.SelectedText); textbox.SelectedText = ""; break; case "复制": Clipboard.SetText(textbox.SelectedText); break; case "粘贴": textbox.SelectedText = Clipboard.GetText(); break; case "选择全部": textbox.SelectAll(); break; default: break; } } }
使用方法很简单,就一句话,如下:
CreatMenuForTextBox.creatMenu(textBox);
好了,到此也就差不多说清楚了,大家如果觉得有用的话,或有什么需要的话,联系我,谢谢支持!
天猫正品:西诺A10正品通用大容量锂聚合物手机移动电源充电宝
10000毫安 【包邮】 高端精品 安全聚合物 充5次苹果!
相关文章推荐
- Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
- java多文本框使用右键弹出菜单复制粘贴剪切功能实现
- Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
- richedit中加右键菜单:复制、粘贴、剪切等基本功能,代码如何写?
- 为RichTextBox添加快捷功能菜单(复制, 剪切,粘贴,全选)
- 为RichTextBox添加快捷功能菜单(复制, 剪切,粘贴,全选)
- VB实现屏蔽文本框右键菜单的复制、粘贴等功能的方法
- 禁止复制,剪切,粘贴,选中,右键等功能的写法
- js屏蔽浏览器右键菜单,粘贴,复制,剪切,选中(转)
- ListBox添加右键菜单并选择该项功能的实现
- C#如何禁止textbox 复制、粘贴、剪切、鼠标右键
- java实现记事本基本功能:新建、打开、保存、另存为、退出、替换、全部替换、复制、剪切、粘贴、全选、获取当前时间日期、修改字体、颜色、自动换行等
- 实现JTextfield 的右键 复制、剪切、粘贴功能。
- 实现JTextfield 的右键 复制、剪切、粘贴功能。
- richTextBox的右键菜单“复制、粘贴、剪切、全选、删除、撤销、重做”
- 【转】禁止另存网页、屏蔽选中、粘贴、复制、剪切、右键菜单(精)自己
- js屏蔽浏览器右键菜单,粘贴,复制,剪切,选中
- 为RichTextBox添加快捷功能菜单(复制,粘贴,全选等)
- 实现JTextfield 的右键 复制、剪切、粘贴功能。
- 禁止复制,剪切,粘贴,选中,右键等功能的写法