WPF里面虽然很多形式上跟Winform一样,但是控件的使用上面还是会有很多诧异。RichTextBox就是一个例子,是的,在WPF里面对这个控件可以做很多Winform很难做的效果出来。
比如在对RichTextBox插入图片,winform时代除了用复制粘贴这种借助剪贴板的差劲方法之外就是要重写和自定义RichTextBox控件了。这就需要高超的编程能力了。但在WPF里面,只需要加几个代码就能搞定了。
在XAML里面添加图片到RichTextBox可以如下所示:
<RichTextBox HorizontalAlignment="Left" Margin="90,12,0,0" Name="richTextBox1">
<RichTextBox.Document>
<FlowDocument Focusable="True" LineHeight="5">
<Paragraph x:Name="gara">
文字区域
<Image Source="D:\1342892_10.jpg" Focusable="True" Height="50" Stretch="Uniform" />
文字区域
<Run Text="文字区域文字区域"></Run>
<Run Text="文字区域"></Run>
</Paragraph>
<Paragraph x:Name="gara1">
<Run Text="文字区域"></Run>
<Run Text="文字区域"></Run>
</Paragraph>
</FlowDocument>
</RichTextBox.Document>
</RichTextBox>
这样就往控件里面添加了图片了。
备注:FlowDocument里面的LineHeight
属性是文字段落的间距。默认间距很大,所以这里调整一下!
当然,这样未必能够完全满足要求,因为有时候我们需要在程序运行的时候点击按钮选取图片进行添加。代码如下:
private void AddJPG_Click(object sender, RoutedEventArgs e)
{
string filepath = "";
string filename = "";
OpenFileDialog openfilejpg = new OpenFileDialog();
openfilejpg.Filter = "jpg图片(*.jpg)|*.jpg|gif图片(*.gif)|*.gif";
openfilejpg.FilterIndex = 0;
openfilejpg.RestoreDirectory = true;
openfilejpg.Multiselect = false;
if (openfilejpg.ShowDialog() == true)
{
filepath = openfilejpg.FileName;
Image img = new Image();
BitmapImage bImg = new BitmapImage();
img.IsEnabled = true;
bImg.BeginInit();
bImg.UriSource = new Uri(filepath, UriKind.Relative);
bImg.EndInit();
img.Source = bImg;
//MessageBox.Show(bImg.Width.ToString() + "," + bImg.Height.ToString());
/* 调整图片大小
if (bImg.Height > 100 || bImg.Width > 100)
{
img.Height = bImg.Height * 0.2;
img.Width = bImg.Width * 0.2;
}*/
img.Stretch = Stretch.Uniform; //图片缩放模式
new InlineUIContainer(img, richTextBox1.Selection.Start); //插入图片到选定位置
}
}
这样就插入了一张图片到RichTextBox里了,是不是很简单呢!
分享到:
相关推荐
WPF实现RichTextBox添加文本、自动滚动
在Windows Presentation Foundation(WPF)框架中,richtextbox控件是一个非常重要的组件,它用于显示和编辑富文本内容,支持各种格式的文本、图片、表格等元素。本主题将深入探讨如何使用WPF的richtextbox控件来...
WPF+RichTextBox实现富文本编辑器,主要实现主要实现复制,剪切,粘贴,撤销,重做,保存,打开,文本加粗,斜体,下划线,删除线,左对齐,居中对齐,右对齐,两端对齐,缩进,减少缩进,项目符号,数字符号,上标...
在Windows Presentation Foundation (WPF) 中,`RichTextBox` 是一个强大的控件,用于显示和编辑富文本内容,包括字体、颜色、图像等。在本文中,我们将深入探讨如何实现`RichTextBox`对文件拖拽的支持,这在很多...
在Windows Presentation Foundation (WPF) 中,`RichTextBox` 是一个强大的控件,用于显示和编辑富文本内容,包括格式化的文本、图像、表格等。标题提到的“wpf支持上下标的richtextbox”意味着我们可以利用`...
RichTextBox控件中显示HTML格式数据
在Windows Presentation Foundation (WPF) 中,`RichTextBox` 是一个强大的文本编辑控件,用于显示和编辑富文本内容,支持格式化文本、图像、表格等复杂布局。本示例项目"RichTextBox 简单示例"展示了如何在WPF应用...
WPF中richtextbox知识点总结richtextbox知识点总结richtextbox知识点总结richtextbox知识点总结richtextbox知识点总结
根据提供的信息,我们可以总结出以下关于WPF中`RichTextBox`控件的使用与操作的知识点: ### WPF中的RichTextBox概述 `RichTextBox`是Windows Presentation Foundation (WPF)框架中的一个强大文本编辑控件,它允许...
RichTextBox是WPF提供的一种控件,它允许用户进行富文本编辑,包括字体设置、段落格式化以及插入图片等。 首先,让我们了解WPF。它是.NET Framework的一部分,用于构建桌面应用程序的UI框架。它提供了丰富的图形...
### WPF操作RichTextBox知识点详解 #### 一、概述 在WPF(Windows Presentation Foundation)框架中,`RichTextBox`是一种非常强大的控件,用于显示和编辑格式化的文本。它支持复杂的文本布局、样式和流文档,使得...
### WPF中在RichTextBox内添加控件未启用问题解析 在WPF(Windows Presentation Foundation)框架下,`RichTextBox`是一种强大的控件,用于显示和编辑文本,它支持复杂格式化、样式设置以及流文档(`FlowDocument`...
在C# WPF(Windows Presentation Foundation)开发中,RichTextBox是一个常用的控件,它用于显示和编辑富文本内容,支持多种格式,如字体、颜色、段落等。然而,在实际应用中,有时我们需要为RichTextBox添加行号...
RichTextBox是WPF中用于显示和编辑富文本的控件,它可以处理格式化文本,如字体、颜色、大小等。我们可以利用这个特性来根据日志级别改变日志的颜色。首先,在XAML中添加一个RichTextBox,并在后台代码中创建一个...
在Windows Presentation Foundation (WPF) 中,`RichTextBox` 是一个强大的控件,用于创建具有丰富格式化的文本编辑器。这个控件允许用户输入、编辑和格式化文本,包括字体、颜色、段落样式以及插入图像等。在本文中...
- 在设计视图中添加一个`RichTextBox`控件到窗体上,以及可能需要的其他控件,如按钮,用于触发图片插入操作。 2. **插入图片的原理**: - `RichTextBox`控件不直接支持插入图片,但可以通过插入特殊的RTF(富...
接着,我们需要为`Image`控件添加一个`Canvas`作为其父容器,`Canvas`允许我们通过坐标系统来精确地定位和调整子元素的大小。在`Canvas`上,我们可以监听鼠标的事件,如`MouseMove`、`MouseLeftButtonDown`和`...
RichTextBox 练习,保存和读取图片数据库 QQ:292258449
如果需要更精细的控制,可以考虑使用第三方库,如`FlowDocument`或`WPF`的`RichTextBox`,它们提供了更多的格式化选项,包括行间距。例如,`FlowDocument`允许你直接设置`LineHeight`属性: ```csharp ...
在Windows Presentation Foundation (WPF) 中,`richtextBox` 是一个非常强大的控件,用于显示和编辑富文本内容,支持格式化文本、图片、表格等复杂布局。本示例中的"richtextBox高亮显示指定文本.rar" 文件提供了一...