0

我在列表框内的堆栈面板中有一个网格。这个网格有一些控制元素,如矩形和文本块。它们在纵向上延伸到整个宽度,但在横向上却没有。

模拟器快照

这是 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 回答