这是一个棘手的问题,我在一个流程文档中有许多表格单元,我需要能够通过一个彩色的左边框来指示不同的项目。
我现在已经解决了这个问题,我把一个4像素的透明边框放在一个有名字的tablecell上,然后使用FindName找到那个元素,并将边刷切换到一个彩色边框。
<TableCell BorderBrush="Transparent" BorderThickness="4 0 0 0" Padding="0 0 4 0" Name="cell_1"/>唯一的问题是对于大型文档来说速度很慢,我认为更改TableCell上的边刷会导致整个布局重新计算
任何人对此有任何想法,我想我要么必须阻止布局重新计算,另一个选择是尝试找到单元格的矩形/坐标并覆盖标记,但我已经找到了一种方法。
我知道对于这类东西,flowdocument不是最合适的控件,但出于布局的原因,我必须使用它。感谢任何帮助/想法
发布于 2010-11-16 16:32:53
我推荐使用adorners。但是,因为TableCell不是从UIContainer继承的,所以您不能修饰它。相反,您可以将每个TableCell的BlockCollection的内容设置为RichTextBox (使用TextBox以获得更好的性能)。将此控件命名为RichTextBox,并对其使用FindName。然后,为要为其创建选择的每个单元格的RichTextBox创建并添加一个Adorner。
如果不能使用嵌套的RichTextBox,可以装饰拥有主FlowDocument的RichTextBox。但是这增加了复杂性,因为您现在必须获取TableCell的坐标并进行相对于RichTextBox的转换。
https://stackoverflow.com/questions/4191603
复制相似问题