2017-06-30 6 views
0

私はWPF RichTextBoxコントロールを持っていて、値をdouble.NaNに自動的に決定するために、RichTextBox.Document.PageWidthプロパティの値をdouble.NaNに設定します。FlowDocument.PageWidthプロパティの値を自動的に取得する

私は自動的に決定された値を取得したいと思いますが、それはdouble.NaNを返すので、プロパティの値を読み取ることでこれを行うことはできません。しかし、

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

DesiredSizeリターンを:私は(double.NaNの値で)autoに設定することができますプロパティのOnMyPropertyChanged方法でRichTextBox.DesiredSizeの値を取得してみてください

EDIT

両方の軸で0です。

答えて

1

は、(必ずしもすべての親コントロールに追加せずに)TextBlockコントロールを作成し、あなたがの幅を取得する必要がありますテキスト値を設定し、また、フォントのプロパティ(FontFamilyFontStyleFontWeightFontStretchFontSize)は、その後、呼び出しコントロールのMeasureメソッドを使用して、読み取ることができるDesiredSizeプロパティの値を決定します。

1

これは仕様によるものです... RichTextBoxは固定幅のビューに存在することを意図していました。境界線に配置し、リッチテキストボックスの幅を境界線のActualWidthにバインドするウォークアラウンド。

乾杯。

+0

Widthプロパティをautoに設定すると、コントロールの右端がコントロールを含むコントロールの右端になるように幅が調整されます。したがって、Width-likeプロパティは、リッチテキストボックス内のテキストの幅に基づいてその値を調整しません。これは、通常のテキストボックスやテキストブロックでは実行されますが、リッチテキストボックスでは実行されません。 とにかく、私は無礼な解決策を見つけましたが、うまくいきました。答えとして投稿しました。 – florien

関連する問題