0

次のコードがあります。

<Grid Grid.Row="1">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="100*" />
                    <ColumnDefinition Width="100*" />
                    <ColumnDefinition Width="100*" />
                    <ColumnDefinition Width="100*" />
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="100*" />
                    <RowDefinition Height="100*" />
                    <RowDefinition Height="100*" />
                </Grid.RowDefinitions>

                <StackPanel Grid.Row="0" Grid.Column="0" Width="30*">
                    ...
                </StackPanel>
     </Grid>

Stackpanel の幅をセルの 30% に設定しようとしています。私はすでに投稿WPF: Setting the Width (and Height) as a Percentage Value を参照しました。投稿によると、グリッドのように幅を 30* として機能させる必要がありました。しかし、「30* 文字列を長さに変換できません」というエラーが表示されます。したがって、エラーを修正したい、またはセルの幅 30% のスタックパネルを設定する方法を取得したいだけです。ありがとう。

4

1 に答える 1

5

stackpanel の幅は 2 倍以外はありません。グリッド幅は * および auto も使用できます (* が指定されていない場合のデフォルト)

また、StackPanel は、コンテンツが必要とする以上の幅を占めることは決してないことに注意してください。Horizo​​ntalAlignment="Stretch" は効果がありません。

代わりにこれを行うことをお勧めします。

        <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100*" />
            <ColumnDefinition Width="100*" />
            <ColumnDefinition Width="100*" />
            <ColumnDefinition Width="100*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="100*" />
            <RowDefinition Height="100*" />
            <RowDefinition Height="100*" />
        </Grid.RowDefinitions>


        <Grid Grid.Row="0" Grid.Column="0" >
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>

            <StackPanel>
            </StackPanel>

        </Grid>
    </Grid>
于 2013-03-22T08:46:35.437 に答える