2012-07-10 101 views
0

我有一个内部的列表框内的一个网格。 这个网格有几个控制元素,如矩形和文本块。 他们伸展到纵向的整个宽度,但不是在横向。方向更改后列表框内控件的宽度不变

Snapshot of emulator

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

有什么东西错我的代码? 任何帮助将不胜感激。

谢谢。

回答

0

你为什么要这样做?

< Grid.ColumnDefinitions> < ColumnDefinition宽度= “10”/> < ColumnDefinition宽度= “{结合的ElementName = StackPanelWidth,路径= ActualWidth的}”/> < ColumnDefinition宽度= “10”/> < /Grid.ColumnDefinitions>

在这里你以某种方式指定了宽度,因为它没有调整大小。

另外,stackpanel会自动调整到它的子宽度,所以如果你正在尝试做什么,那么不需要指定绑定。