c# - 有没有办法测量 WPF flowdoc 中 block /部分的高度?

标签 c# wpf flowdocument

所以我正在逐段构建流程文档,我想知道是否有一种方法可以在给定时间测量 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。老实说,这有点丑陋,但我还没有找到另一种方法。

关于c# - 有没有办法测量 WPF flowdoc 中 block /部分的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168590/

相关文章:

c# - ScrollViewer.ScrollToBottom 未完全滚动

C# FlowDocument 到 HTML 的转换

c# - 将图像插入段落的内联列表中

c# - Entity Framework : Model for Categories/Products relation

c# - 当我比较一个对象(类型)时,它是否使用特定类的 IEquatable?

c# - 将 C# DateTime 对象转换为 libpcap 捕获文件时间戳

c# - linq2sql 呈现不必要的 ORDER BY

c# - WPF:触发动画 - 沿 Y 轴向下移动控件

c# - WPF 中的 ContextMenu 太宽