WPF TextBoxコントロールのTextプロパティを設定すると、変更する必要があるその他のプロパティも変更されません。特に、Textを設定した後にExtentWidthプロパティの値をチェックしたいが、変更はしない。 UpdateLayout()を無駄に呼び出そうとしました。 Windows.FormsではDoEvents()を呼び出します。テキストを設定した後にWPF TextBoxプロパティを更新する
OK、ここにいくつかのコードがあります。私はこれをWindow_Loaded()イベントハンドラに入れます。問題は、textBox.Textが変更されたときにtextBox.ExtentWidthが変更されないことです。それは本当に私を驚かせません。私はExtentWidthを再計算するためにtextBox.UpdateLayout()のようなものを呼び出す必要があると思っていますが、それは役に立ちませんでした。 ExtentWidthは、textBox.TextをWindowのコンストラクタに初期化することによって異なりますが、それは私を助けません。いくつかの異なるText値を設定し、それぞれに対応するExtentWidthを取得する必要があります。
string initText = textBox.Text; // "textBox"
double extentWidth = textBox.ExtentWidth; // 39.3
textBox.Text = "short text";
extentWidth = textBox.ExtentWidth; // 39.3
textBox.Text = "Long enough to make a difference, eh?";
extentWidth = textBox.ExtentWidth; // 39.3
値は何ですか、0.0ですか? – Maheep
これにいくつかのコードを追加して、あなたが見ているものを見ることができます。 – Xcalibur37
ActualWidthは、wpfコントロールの実際の幅を示します。いくつかのコードはあなたを助けるのに役立ちます:) – blindmeis