0

リストボックス内にあるstackpanel内にグリッドがあります。このグリッドには、長方形やテキストブロックなどのいくつかの制御要素があります。縦向きでは全幅に伸びますが、横向きでは伸びません。

エミュレータのスナップショット

これはXAMLです。

<ListBox Name="PassList" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">

                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel HorizontalAlignment="Stretch">
                                    <Grid Name="StackPanelWidth" Width="{Binding ElementName=PassList, Path=ActualWidth}">
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="40"/>
                                            <RowDefinition Height="40"/>
                                            <RowDefinition Height="40"/>
                                            <RowDefinition Height="40"/>
                                            <RowDefinition Height="20"/>
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="10"/>
                                            <ColumnDefinition Width="{Binding ElementName=StackPanelWidth, Path=ActualWidth}"/>
                                            <ColumnDefinition Width="10"/>
                                        </Grid.ColumnDefinitions>

                                        <Rectangle Fill="White"
                                                   Grid.Row="0"
                                                   Grid.Column="1"
                                                   HorizontalAlignment="Stretch"
                                                   VerticalAlignment="Stretch"
                                                   RadiusX="10"
                                                   RadiusY="10"
                                                   />

                                        <Rectangle Fill="White"
                                                   Grid.Row="0"
                                                   Grid.Column="1"
                                                   HorizontalAlignment="Stretch"
                                                   VerticalAlignment="Stretch"
                                                   Margin="0,10,0,0"
                                                   />

                                        <Rectangle Fill="DarkGray"
                                                   Grid.Row="0"
                                                   Grid.Column="1"
                                                   Height="1"
                                                   VerticalAlignment="Bottom"
                                                   />

                                        <TextBlock Name="Country"
                                                   Grid.Row="0"
                                                   Grid.Column="1"
                                                   HorizontalAlignment="Left"
                                                   Margin="10,0,0,0"
                                                   VerticalAlignment="Center"
                                                   Text="{Binding Country}"
                                                   Foreground="Black"
                                                   FontWeight="Bold"
                                                   />


                                        .............
                                        .............

                                    </Grid>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

私のコードに何か問題がありますか?どんな助けでもありがたいです。

ありがとう。

4

1 に答える 1

0

なぜあなたはこれをやっている?

<Grid.ColumnDefinitions> <ColumnDefinition Width="10"/> <ColumnDefinition Width="{Binding ElementName=StackPanelWidth, Path=ActualWidth}"/> <ColumnDefinition Width="10"/> </Grid.ColumnDefinitions>

ここでは、サイズ変更されていないため、何らかの方法で幅を指定しています。

また、stackpanel は自動的にその子の幅に合わせて調整されるため、バインディングを指定する必要はありません。

于 2012-08-03T09:15:48.917 に答える