1. ホーム
  2. wpf

[解決済み] スタックパネルでアイテムを整列させる?

2022-04-24 22:11:44

質問

水平方向のStackPanelの中に2つのコントロールがあり、右側のアイテムがStackPanelの右側にドッキングされるようにしたいのですが、可能でしょうか?

以下のように試してみましたが、うまくいきませんでした。

<StackPanel Orientation="Horizontal">
    <TextBlock>Left</TextBlock>
    <Button Width="30" HorizontalAlignment="Right">Right<Button>
</StackPanel>

上のスニペットでは、ButtonをStackPanelの右側にドッキングさせたいと考えています。

注:Gridなどではなく、StackPanelで行う必要があります。

どのように解決するのですか?

で実現できます。 DockPanel :

<DockPanel Width="300">
    <TextBlock>Left</TextBlock>
    <Button HorizontalAlignment="Right">Right</Button>
</DockPanel>

という違いがあります。 StackPanel は、子要素を1行に並べます。 (縦または横)であるのに対して DockPanel は、子要素を相対的に水平または垂直に配置できる領域を定義します。 (その Dock プロパティは、同じコンテナ内の他の要素に対する要素の相対的な位置を変更します。アラインメント・プロパティは、例えば HorizontalAlignment 親要素に対する相対的な位置を変更します)。

更新

コメントで指摘されているように FlowDirection プロパティの StackPanel . 参照:@D_Bester の 答え .