首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF表列大小

WPF表列大小
EN

Stack Overflow用户
提问于 2010-09-29 22:34:35
回答 3查看 12.1K关注 0票数 18

我正在使用代码隐藏在WPF FlowDocument中呈现一个Table。但是,我一直找不到一个示例来说明如何使表仅使用所需的based on content空间。相反,表格占用了所有可用的宽度,这是我不想要的,我也不想指定确切的像素大小。

我明显漏掉了一些简单的东西,有人看到了吗?

代码语言:javascript
运行
复制
var fd = new FlowDocument();

Table t = new Table();

t.BorderBrush = Brushes.Black;
t.BorderThickness = new Thickness(2);

// I thought this would do what I wanted...
t.Columns.Add(new TableColumn() { Width = GridLength.Auto });
t.Columns.Add(new TableCOlumn() { Width = GridLength.Auto });

TableRowGroup trg = new TableRowGroup();

TableRow currentRow = new TableRow();
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("ABC"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("XYZ"))));
trg.Rows.Add(currentRow);

currentRow = new TableRow();
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("123"))));
currentRow.Cells.Add(new TableCell(new Paragraph(new Run("789"))));
trg.Rows.Add(currentRow);

t.RowGroups.Add(trg);

fd.Blocks.Add(t);
EN

Stack Overflow用户

发布于 2019-07-09 12:38:59

我知道这个问题是在9年前提出的,但我找到了一种不使用BlockUIContainer的替代方法,坦率地说,当序列化FlowDocument或用户只是在RichTextBox中编辑文档时,这是一种痛苦。

向每个表单元格添加一个PreviewMouseMove和PreviewMouseDown处理程序。在PreviewMouseMove中,只要光标与单元格边界相邻,就将光标更改为SizeWE。在PreviewMouseDown中,使用RichTextBox作为源捕获鼠标。

将PreviewMouseMove和PreviewMouseUp处理程序添加到RichTextBox。在PreviewMouseMove中,根据计算的水平增量移动调整表列的大小。在PreviewMouseUp中释放鼠标。

棘手的部分是计算单元格边框的位置,因为没有办法只获得单元格的位置或宽度。因此,您必须通过计算PagePadding、表格填充和列宽的总和来近似计算它们的位置。

票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3822636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档