0
<Window ... >
    <StackPanel>
        <Button>b1</Button>
        <Button>b2</Button>
    </StackPanel>
</Window>

これを次のように表示する方法:

<Window ...>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <Button>b1</Button>
        <Button Grid.Row="1">b2</Button>
    </Grid>
</Window>

グリッドを使用せずに

4

2 に答える 2

5

あなたはそれを試すことができます:

<Window ... >
    <UniformGrid Rows="2" Columns="1">
        <Button>b1</Button>
        <Button>b2</Button>
    </UniformGrid>
</Window>

本格的な ほど柔軟ではありませんGridが、使いやすい...

于 2009-08-14T12:05:41.087 に答える
2

簡単な答え:できません。

長い答え:カスタムパネルを作成し、ArrangeOverrideとMeasureOverrideをオーバーライドして、グリッドの動作をシミュレートします。

StackPanelは、各子要素を最小の高さ(または、Orientation ==水平の場合は最小の幅)を使用するように配置します。StackPanelには、この動作を変更するためのプロパティはありません。一方、グリッドは、特に明記されていない限り、使用可能なすべてのスペースを各子(または行/列)に均等に分割します。

于 2009-08-14T12:44:05.593 に答える