違いは何ですか:
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
wPFのテキストボックスにありますか?
サンプル例:
<TextBox HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
Height="100"
TextWrapping="Wrap"
AcceptsReturn="True"
></TextBox>
HorizontalAlignment
およびVerticalAlignment
は、親コントロールに対するコントロール自体の配置を決定します。
HorizontalContentAlignment
およびVerticalContentAlignment
は、コントロールに対するコントロールのコンテンツの配置を決定します。
たとえば、一般的なボタンコントロールについて考えてみます。
<Button x:Name="aButton" Width="50" Height="25" />
ここでは、どういうわけか、このコントロールがその親コントロール内でどのように配置されるかを指定する必要があります。適切な親コントロールは、StackPanel、Grid、WrapPanelなどです。
Horizontal
-とVerticalAlignment
の両方について、オプションLeft
、Right
、Center
、およびStretch
から選択できます。最初の3つのオプションはボタンの幅と高さを尊重しますが、最後のオプションは設定された幅または高さを無視して、指定された方向にボタンを引き伸ばそうとします。
コード
<StackPanel Orientation="Horizontal">
<Button x:Name="aButton" Width="50" Height="25" HorizontalAlignment="Right" />
</StackPanel>
たとえば、ボタンをStackPanel内に配置し、左側の内側に配置します。
HorizontalContentAlignment
およびVerticalContentAlignment
は、コントロールのコンテンツを調整します。コンテンツは特別なUIControlであり、ContentControlのControlTemplateを調べることで簡単に利用できるコントロールに組み込まれています。特に、ContenControlsについて話していることに注意してください。これは、オブジェクトを1つだけ「運び」、そのコンテンツを表示することができるコンテナとして機能します。
したがって、HorizontalContentAlignment
とVerticalContentAlignment
は、コンテナに対するこのコンテンツの配置を決定しています。最初に作成されたボタンの場合、ボタンのコンテンツはそのキャプションであり、問題の2つのプロパティを使用して、このキャプションをボタンの境界線の内側に配置します。これも、左、右、中央、ストレッチのいずれかです。
HorizontalAlignment
は、テキストボックスをそれを含む親に対して整列させますが、HorizontalContentAlignment
は、テキストボックスのテキストをそれ自体に対して整列させます。
HorizontalContentAlignmentおよびVerticalContentAlignmentは、これらをコンテンツに適用するコンテンツコントロールで使用されます。たとえば、次のコードでは、コンテンツコントロールボタンはそのコンテンツ(この場合は文字列であり、任意のオブジェクトにすることができます)を中央に揃えます。
HorizontalAlignmentとVerticalAlignmentは、これらがPanel内にある場合、子要素で使用されます。 Panelは、子要素のこれらのプロパティに基づいて子を配置します。次のコードでは、パネル(StackPanel)がその子(ボタン)を右に揃えます。
<StackPanel>
<Button Content="OK"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
HorizontalAlignment="Right" VerticalAlignment="Top" />
</StackPanel>