所以我正在逐段构建流程文档,我想知道是否有一种方法可以在给定时间测量 block 的高度。
我的代码看起来像这样:
section s = new section();
block b1 = new Block(new Run("Text here"));//add height to total block height
block b2 = new Block(new Run("Text here"));//add height to total block height
block b3 = new Block(new Run("Text here"));//add height to total block height
block b4 = new Block(new Run("Text here"));//add height to total block height
s.blocks.add(b1);s.Blocks.Add(b2)...;s.blocks.add(b4)
//measure section here
FlowDocument f = new FlowDocument;
f.Blocks.Add(s);
我可以在添加每个段落后对其进行测量,并保持运行记录,
或
在添加所有 block 后,我可以测量整个部分。
这可能吗?
谢谢!
FlowDocument 模型基于 FrameworkContentElement 而不是 FrameworkElement,不会继承 Visibility、Height 和 Width 设置等优点。
我发现强制测量的唯一方法(仅在没有其他方法时)是使用 BlockUIContainer 将 UIElements 注入(inject)到文档中。然后可以在运行时测量命名的 UIElement。老实说,这有点丑陋,但我还没有找到另一种方法。
我是一名优秀的程序员,十分优秀!