Height は、高さ情報を指定する FrameworkElement の 3 つの書き込み可能なプロパティのうちの 1 つです。他の 2 つは、MinHeight と MaxHeight です。これらの値の間に競合が発生した場合は、まず MinHeight、次に MaxHeight を適用し、この 2 つが範囲内にあるときは、最後に Height を適用して実際の高さを決定します。
この要素が他の要素内の子要素である場合は、このプロパティの値を設定しても、実際には推奨値にしかなりません。その値は、レイアウト システムや親要素の特定のレイアウト ロジックによって、強制力のない入力としてレイアウト プロセスで使用されます。実際問題として、FrameworkElement はほとんど常に他の要素の子要素になっています。これは、Window で Height を設定する場合でも同じです (Window の場合、その値は、基になるアプリケーション モデルで、アプリケーションをホストする Hwnd を作成する基本的な描画の前提が確立されるときに使用されます)。
Double 型の値を受け入れることができるだけでなく、このプロパティは Double.NaN にすることもできます。コードで自動サイズ変更動作を指定する場合にこの値を使用します。XAML では、値を文字列 "Auto" (大文字/小文字の区別なし) に設定して自動サイズ変更動作を有効にします。自動サイズ変更動作では、要素の高さは利用可能な最大の高さになります。ただし、特定のコントロールで既定のテーマ スタイルによって既定値が指定される場合も多く、その場合は自動サイズ変更動作は (改めて有効にしない限り) 無効になります。
このプロパティの戻り値は、常に設定値と同じです。これに対し、ActualHeight の値は異なる場合があります。何らかの理由で推奨サイズがレイアウトによって拒否されて静的に異なることもあれば、一時的に異なることもあります。レイアウト システムそのものが、プロパティ システムによる Height の設定に対して非同期で動作するため、特定のサイズ設定プロパティの変更がまだ処理されていない場合があります。
Double 型の値に対する値の制約は、ValidateValueCallback 機構によって適用されます。無効な値を設定しようとすると、ランタイム例外が発生します。
検証チェックに加えて、レイアウト システムによって適用される Height には非決定性の上限値があります (これは、Single.MaxValue より大きいが Double.MaxValue より小さい、非常に大きな値です)。この上限値を超えると、要素は描画されず、例外も発生しません。表示可能な最大サイズを大きく超える値を Height に設定しないでください。この非決定性の上限値を超える可能性があります。