26

違いは何ですか:

  • HorizontalAlignment="Stretch"
  • HorizontalContentAlignment="Stretch"

WPFのテキストボックスにありますか?

サンプル例:

<TextBox HorizontalAlignment="Stretch"
            HorizontalContentAlignment="Stretch"
            Height="100"
            TextWrapping="Wrap"
            AcceptsReturn="True"
         ></TextBox>
4

3 に答える 3

29

HorizontalAlignmentVerticalAlignment親コントロールに対するコントロール自体の配置を決定します。

HorizontalContentAlignmentVerticalContentAlignmentコントロールに対するコントロールのコンテンツの配置を決定します。

たとえば、一般的なボタンコントロールについて考えてみます。

<Button x:Name="aButton" Width="50" Height="25" />

ここでは、どういうわけか、このコントロールがその親コン​​トロール内でどのように配置されるかを指定する必要があります。適切な親コントロールは、StackPanel、Grid、WrapPanelなどです。

両方の場合Horizontal-そして、オプション、、、およびVerticalAlignmentから選択できます。最初の3つのオプションはボタンの幅と高さを尊重しますが、最後のオプションは設定された幅または高さを無視して、指定された方向にボタンを引き伸ばそうとします。LeftRightCenterStretch

コード

<StackPanel Orientation="Horizontal">
    <Button x:Name="aButton" Width="50" Height="25" HorizontalAlignment="Right" />
</StackPanel>

たとえば、ボタンをStackPanel内に配置し、左側の内側に配置します。

HorizontalContentAlignmentVerticalContentAlignmentコントロールのコンテンツを調整します。コンテンツは特別なUIControlであり、ContentControlのControlTemplateを調べることで簡単に利用できるコントロールに組み込まれています。特に、ContenControlsについて話していることに注意してください。これは、1つのオブジェクトを「運び」、そのコンテンツを表示することができるコンテナとして機能します。

そのため、コンテナに対するこのコンテンツの配置を決定していますHorizontalContentAlignmentVerticalContentAlignment最初に作成されたボタンの場合、ボタンのコンテンツはそのキャプションであり、問​​題の2つのプロパティを使用して、このキャプションをボタンの境界線の内側に揃えます。これも、左、右、中央、ストレッチのいずれかです。

于 2012-07-19T17:30:18.893 に答える
10

HorizontalAlignmentテキストボックスをそれを含む親に対してHorizontalContentAlignment整列させますが、テキストボックスのテキストをそれ自体に対して整列させます。

于 2012-07-19T17:30:36.337 に答える
1

ホリゾンタルコンテンツアラインメントとバーティカルコンテンツアラインメントは、これらをコンテンツに適用するコンテンツコントロールで使用されます。たとえば、次のコードでは、コンテンツコントロールボタンはそのコンテンツ(この場合は文字列であり、任意のオブジェクトにすることができます)を中央に揃えます。

子要素がPanel内にある場合、Horizo​​ntalAlignmentとVerticalAlignmentは子要素で使用されます。Panelは、子要素のこれらのプロパティに基づいて子を配置します。次のコードでは、Panel(StackPanel)がその子(Button)を右に揃えます。

<StackPanel>
    <Button Content="OK" 
    HorizontalContentAlignment="Center" VerticalContentAlignment="Center" 
    HorizontalAlignment="Right" VerticalAlignment="Top" />
</StackPanel>
于 2018-04-18T09:01:39.950 に答える