获取 FlowDocument.PageWidth 属性 的自动确定值

Get automatically determined value of FlowDocument.PageWidth property

我有一个 WPF RichTextBox 控件,我将 RichTextBox.Document.PageWidth 属性 的值设置为 double.NaN 以便自动确定该值。

现在我想获得自动确定的值,但我无法通过读取 属性 的值来实现,因为它 returns double.NaN.

编辑

我尝试在属性的OnMyPropertyChanged方法中获取RichTextBox.DesiredSize的值,可以设置为自动(值为double.NaN):

if (!double.IsNaN(MyProperty)) richTextBox.Width = MyProperty;
else richTextBox.Width = richTextBox.DesiredWidth;

但是,DesiredSize returns 两个轴上都是 0。

这是设计使然...RichTextBox 本来应该存在于固定宽度的视图中。应该可行的解决方法 - 将其放入边框,并将富文本框的宽度绑定到边框的 ActualWidth。

干杯。

创建一个TextBlock控件(不必将其添加到任何父控件),设置需要获取其宽度的文本值,以及字体属性(FontFamilyFontStyleFontWeightFontStretchFontSize),然后调用控件上的 Measure 方法,以便它确定其 DesiredSize 属性,你可以阅读。