实现如图所示效果:
实现代码如下所示:
注意,此处不做代码格式化处理...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using TXTextControl; namespace InsertImage { public partial class Form1 : Form { string FilePath1 = Application.StartupPath + "\\Image\\1.png" ; string FilePath2 = Application.StartupPath + "\\Image\\2.png" ; string FilePath3 = Application.StartupPath + "\\Image\\3.png" ; string FilePath4 = Application.StartupPath + "\\Image\\4.png" ; public Form1() { InitializeComponent(); } private void 插入图片ToolStripMenuItem_Click( object sender, EventArgs e) { System.Drawing.Image img = System.Drawing.Image.FromFile(FilePath1); // 完成TX中使用的度量单位缇(Twip)与.NET使用的度量单位像素(Pixel)的转换 Graphics g = txContent.CreateGraphics(); int iTwipsPerPixel = ( int )(1600 / g.DpiX); // 创建TX中的图片对象 System.Drawing.Image thumbImage = img.GetThumbnailImage(150, 150, null , System.IntPtr.Zero); TXTextControl.Image image = new TXTextControl.Image(thumbImage); // 设置图片ID image.ID = 1001; // 将图片插入到TextFrame中 txContent.Images.Add(image, txContent.InputPosition.TextPosition); } private void AddImage() { System.Drawing.Image img = System.Drawing.Image.FromFile(FilePath1); System.Drawing.Image img2 = System.Drawing.Image.FromFile(FilePath2); System.Drawing.Image img3 = System.Drawing.Image.FromFile(FilePath3); System.Drawing.Image img4 = System.Drawing.Image.FromFile(FilePath4); List<System.Drawing.Image> list = new List<System.Drawing.Image>(); list.Add(img); list.Add(img2); list.Add(img3); list.Add(img4); //AddOneImage(list); AddOne2Image(list,200,200); } private void AddOne2Image(List<System.Drawing.Image> list, int width, int height) { System.Drawing.Image thumbImage = list[0].GetThumbnailImage(width, height, null , System.IntPtr.Zero); TXTextControl.Image image = new TXTextControl.Image(thumbImage); int txWidth = txContent.Width; txContent.Images.Add(image, txContent.InputPosition.TextPosition); this .txContent.Select( this .txContent.Text.Length, 0); this .txContent.Selection.Text = " " ; } public Table AddTable( int rows, int cols, int id) { this .txContent.Tables.Add(rows, cols, id); Table table = this .txContent.Tables.GetItem(id); return table; } private void AddOneImage(List<System.Drawing.Image> list) { for ( int i = 0; i < list.Count; i++) { System.Drawing.Image thumbImage = list[i].GetThumbnailImage(200, 200, null , System.IntPtr.Zero); TXTextControl.Image image = new TXTextControl.Image(thumbImage); int width = txContent.Width; int imageW = image.Size.Width; txContent.Images.Add(image, txContent.InputPosition.TextPosition); this .txContent.Select( this .txContent.Text.Length, 0); this .txContent.Selection.Text = " " ; } } private void 插入ToolStripMenuItem_Click( object sender, EventArgs e) { AddImage(); } } } |
2.动态添加表格并为表格添加图片
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | private void 插入表格ToolStripMenuItem_Click( object sender, EventArgs e) { this .txContent.Tables.Add(5,3,100); } private void 表格中插入图片ToolStripMenuItem_Click( object sender, EventArgs e) { System.Drawing.Image img = System.Drawing.Image.FromFile(FilePath1); TXTextControl.Image txImage = new TXTextControl.Image(img); TXTextControl.Table table = txContent.Tables.GetItem(100); TableCell cell = table.Cells.GetItem(1, 1); //第一行第一列,需减1 txContent.Images.Add(txImage, cell.Start-1); TableCell cell2 = table.Cells.GetItem(2, 1); //第二行第一列 txContent.Images.Add(txImage, cell2.Start); //第二行第二列则为5——cell2.Start TableCell cell3 = table.Cells.GetItem(3, 1); //第三行第一列 txContent.Images.Add(txImage, cell3.Start+1); //注意:cell.Start 表示当前单元格的位置,从第一行开始计算 //例如,三行三列的表格,第一行第一个单元格为1,以此类推2、3.....;第二行第二列则为5 //每行第一个单元格插入需:cell.Start-1; //每一行第二列单元格插入则为:cell.Start,以此类推第三列为cell.Star+1,...... } |
运行效果如下:
添加图片、图片下方添加文字描述如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | private void 插入图片图片下方添加备注ToolStripMenuItem_Click( object sender, EventArgs e) { this .txContent.Tables.Clear(); this .txContent.Tables.Add(5, 3, 100); System.Drawing.Image img = System.Drawing.Image.FromFile(FilePath1); TXTextControl.Image txImage = new TXTextControl.Image(img); TXTextControl.Table table = txContent.Tables.GetItem(100); TableCell cell = table.Cells.GetItem(1, 1); //第一行第一列,需减1 cell.CellFormat.VerticalAlignment = VerticalAlignment.Center; cell.CellFormat.LeftTextDistance = 500; txContent.Images.Add(txImage, cell.Start - 1); TableCell remark1 = table.Cells.GetItem(2, 1); //第1行第2列 remark1.Text = "添加备注1信息成功" ; remark1.CellFormat.VerticalAlignment = VerticalAlignment.Center; remark1.CellFormat.LeftTextDistance=500; TableCell cell2 = table.Cells.GetItem(1, 2); cell2.CellFormat.VerticalAlignment = VerticalAlignment.Center; cell2.CellFormat.LeftTextDistance = 500; txContent.Images.Add(txImage, cell2.Start-1); TableCell remark2 = table.Cells.GetItem(2, 2); //第2行第2列 remark2.Text = "添加备注2信息成功" ; remark2.CellFormat.VerticalAlignment = VerticalAlignment.Center; remark2.CellFormat.LeftTextDistance = 500; //TableCell cell3 = table.Cells.GetItem(3, 1);//第三行第一列 //txContent.Images.Add(txImage, cell3.Start + 1); } |
运行效果如下:
博客内容主要用于日常学习记录,内容比较随意,如有问题,还需谅解!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本