老周:当RichEditBox控件的上下文菜单即将弹出时,会引发ContextMenuOpening事件,我们需要处理该事件,并且将e.Handled属性设置为true,这样才能阻止默认上下文菜单的弹出
在RichEditBox控件上声明附加的菜单项
<RichEditBox Name="redit" Grid.Row="3" Margin="10,10,10,10" ContextMenuOpening="OnContextMenuOpening">
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="复制" Click="OnCopy"/>
<MenuFlyoutItem Text="剪切" Click="OnCut"/>
<MenuFlyoutItem Text="粘贴" Click="OnPaste"/>
<MenuFlyoutSeparator/>
<MenuFlyoutSubItem Text="字号">
<MenuFlyoutItem Text="16" Tag="16" Click="OnFontSize" />
<MenuFlyoutItem Text="20" Tag="20" Click="OnFontSize"/>
<MenuFlyoutItem Text="24" Tag="24" Click="OnFontSize" />
<MenuFlyoutItem Text="36" Tag="36" Click="OnFontSize"/>
<MenuFlyoutItem Text="48" Tag="48" Click="OnFontSize"/>
</MenuFlyoutSubItem>
<MenuFlyoutSeparator/>
<ToggleMenuFlyoutItem Text="加粗" Click="OnBold" />
<MenuFlyoutSeparator/>
<MenuFlyoutSubItem Text="下划线">
<MenuFlyoutItem Text="无" Tag="-1" Click="OnUnderline" />
<MenuFlyoutItem Text="单实线" Tag="0" Click="OnUnderline"/>
<MenuFlyoutItem Text="双实线" Tag="1" Click="OnUnderline"/>
<MenuFlyoutItem Text="虚线" Tag="2" Click="OnUnderline"/>
</MenuFlyoutSubItem>
<MenuFlyoutSeparator/>
<MenuFlyoutSubItem Text="颜色">
<MenuFlyoutItem Text="黑色" Tag="黑色" Click="OnTinct"/>
<MenuFlyoutItem Text="蓝色" Tag="蓝色" Click="OnTinct"/>
<MenuFlyoutItem Text="白色" Tag="白色" Click="OnTinct"/>
</MenuFlyoutSubItem>
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</RichEditBox>
处理OnContextMenuOpening
private void OnContextMenuOpening(object sender , ContextMenuEventArgs e)
{
e.Handled = true;
MenuFlyout menu = FlyoutBase.GetAttachedFlyout(redit) as MenuFlyout;
menu?.ShowAt(redit , new Point(e.CursorLeft , e.CursorTop));
}
处理复制粘贴
private void OnCopy(object sender , RoutedEventArgs e)
{
redit.Document.Selection.Copy();
}
private void OnCut(object sender , RoutedEventArgs e)
{
redit.Document.Selection.Cut();
}
private void OnPaste(object sender , RoutedEventArgs e)
{
redit.Document.Selection.Paste(0);
}
处理OnFontSize
private void OnFontSize(object sender , RoutedEventArgs e)
{
MenuFlyoutItem item = sender as MenuFlyoutItem;
float size = Convert.ToSingle(item.Tag);
redit.Document.Selection.CharacterFormat.Size = size;
}
private void OnBold(object sender , RoutedEventArgs e)
{
ToggleMenuFlyoutItem item = sender as ToggleMenuFlyoutItem;
redit.Document.Selection.CharacterFormat.Bold = item.IsChecked ? FormatEffect.On : FormatEffect.Off;
}
private void OnUnderline(object sender , RoutedEventArgs e)
{
MenuFlyoutItem item = sender as MenuFlyoutItem;
int x = Convert.ToInt32(item.Tag);
UnderlineType unlinetp;
switch (x)
{
case -1:
unlinetp = UnderlineType.None;
break;
case 0:
unlinetp = UnderlineType.Single;
break;
case 1:
unlinetp = UnderlineType.Double;
break;
case 2:
unlinetp = UnderlineType.Dash;
break;
default:
unlinetp = UnderlineType.None;
break;
}
redit.Document.Selection.CharacterFormat.Underline = unlinetp;
}
private void OnTinct(object sender , RoutedEventArgs e)
{
MenuFlyoutItem item = sender as MenuFlyoutItem
string tinct = item.Tag as string
Windows.UI.Color color = new Windows.UI.Color()
switch (tinct)
{
case "黑色":
color= Windows.UI.Colors.Black
break
case "蓝色":
color = Windows.UI.Colors.Blue
break
case "白色":
color = Windows.UI.Colors.White
break
default:
break
}
redit.Document.Selection.CharacterFormat.BackgroundColor = color
}
颜色在Windows.UI.Color
里面代码都是抄老周的
参考:http://www.cnblogs.com/tcjiaan/p/4937301.html
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
这涉及到对RTF(Rich Text Format)编码的理解,因为`RichTextBox`控件内部使用RTF来存储和显示富文本。RTF是一种文本格式,可以包含字体、颜色、图像等丰富的排版信息,同时也支持嵌入超链接。 扩展`RichTextBox`...
这个示例项目将向我们展示如何在VB中有效地使用`RichEditBox`进行各种操作,例如加载文件、打印、剪切、复制、粘贴以及格式化文本。 首先,`Form1.frm`和`Form1.frx`是VB窗体文件及其资源文件,它们定义了窗体的...
然而,有时我们需要在`RichEditBox`中插入更丰富的元素,如图表、媒体播放器或者自定义控件,这时就涉及到了`OLE`(Object Linking and Embedding)技术。`OLE`允许我们在文档中嵌入和链接来自不同应用程序的对象,...
5. **菜单和工具栏**:DevExpress的MenuBar和ToolBar控件允许自定义菜单项和工具按钮,提供丰富的交互体验。 6. **其他控件**:还包括诸如RichEditBox(富文本编辑器)、Scheduler(日历和计划任务控件)、TreeList...
在C#编程环境中,开发一个简单的文本编辑器通常涉及到对Windows Forms或WPF框架的使用。在这个场景中,我们关注的是使用RichTextBox控件结合扩展工具栏(toolbar)来实现这样的功能。RichTextBox控件是.NET ...
- **自定义扩展编辑器**:这类编辑器允许开发者根据需求添加自定义插件和功能,例如使用开源编辑器项目如DevExpress的RichEditBox,开发者可以根据C# API扩展其功能。 3. **集成C# HTML编辑器**: - 在ASP.NET...
以及一些更高级的组件,如ChartControl(用于数据可视化)、DockPanel(用于窗口布局管理)、TreeView(用于展示层级结构)和RichEditBox(富文本编辑器)等。每个控件的介绍通常包括以下内容: 1. **控件概述**:...
对于PowerPoint文件,可能需要自定义的解析器或使用Microsoft Office的COM接口(如`Automation`或`Office Interop`)来访问其内容。 6. **安全性与道德问题**: - 能够绕过RMS的限制虽然展示了编程能力,但需要...
4. **事件处理**:为了响应用户交互,如点击按钮或选择菜单项,我们需要监听`RichEditBox`的事件,如`TextChanged`、`SelectionChanged`等。在事件处理函数中执行相应的操作,如添加样式、插入图片或保存内容。 5. ...
如何最简单在C#中,richTextBox,控件,中放入图片 如何最简单在C#中,richTextBox,控件,中放入图片 如何最简单在C#中,richTextBox,控件,中放入图片 如何最简单在C#中,richTextBox,控件,中放入图片 ...
4. **富文本框** (richeditbox.rar): 富文本框是能够显示格式化文本的GUI组件,如不同颜色、字体和样式。此压缩文件可能包含了CEGUI中富文本支持的增强或定制,例如添加新的格式选项或改进文本渲染效率。 5. **...
标题“SaveWord2Txt”揭示了我们讨论的主题,即一个使用VC6(Visual C++ 6.0)编写的程序,该程序能够读取并保存当前打开的Microsoft Word文档的内容到一个纯文本(TXT)文件中。这个功能特别有用,因为即使Word文档...
这个编辑器提供了一系列强大的文本处理能力,适用于开发人员构建自定义的文本编辑应用。 **WPF(Windows Presentation Foundation)** WPF是.NET框架的一部分,由微软开发,用于构建Windows桌面应用程序。它提供了...