web-dev-qa-db-ja.com

水平スタックパネル塗りつぶし親コントロール

<StackPanel>またはラベル(またはボタンなど)をその親コン​​トロール(例:Window)を横切って水平に配置し、許可されているすべてのスペースを埋めることはできますか?

たとえば、3つのコントロールがある場合

_ウィンドウ幅__

[1] __ [2] __ [3]

または2つのコントロール

_ウィンドウ幅__

[1] _______ [2]

いずれの場合も、ウィンドウの全幅が使用され、各エッジコントロールはそれぞれ左揃えと右揃えになっています。

12
Ternary

StackPanelはコントロールをスタックするので、簡単な答えはありません。これは、StackPanelが行うように設計されていることではありません。

Vladが提案したようにグリッドを使用できます。このようなもの:

    <Grid HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="auto"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="auto"/>
        </Grid.ColumnDefinitions>
        <Button Width="20" Height="20" Grid.Column="0"/>
        <Button Width="20" Height="20" Grid.Column="2"/>
        <Button Width="20" Height="20" Grid.Column="4"/>
    </Grid>
22
Matt Burland