2012-07-10 89 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會自動調整到它的子寬度,所以如果你正在嘗試做什麼,那麼不需要指定綁定。