2012-03-31 147 views
0

我正在使用.NET 4.0(而不是.NET 4.0 CP),並且遇到了這種有點獨特的問題。我創建了一個ListBox來顯示綁定的元素,首先在這裏是我的XAML的(一部分)。當窗口變小時ListBox內容不會調整大小

<Grid Grid.Row="2" Background="#EEEEEE"> 
     <Border Margin="6,10,10,10" BorderBrush="#666666" BorderThickness="1"> 
      <ListBox ItemsSource="{Binding}" Name="appList" BorderThickness="0" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <Grid> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="80" /> 
           <ColumnDefinition Width="*" /> 
          </Grid.ColumnDefinitions> 
          <Border Grid.Column="0" Margin="5" BorderThickness="3" CornerRadius="2" BorderBrush="Black" HorizontalAlignment="Left" VerticalAlignment="Top" x:Name="ItemBorder"> 
           <Image Width="64" Height="64" Source="{Binding Path=IconUri}" Stretch="UniformToFill" /> 
          </Border> 
          <StackPanel Margin="0,5,5,5" Grid.Column="1" Orientation="Vertical" HorizontalAlignment="Stretch"> 
           <TextBlock FontSize="18" Text="{Binding Path=DisplayName}" /> 
           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="*" /> 
             <ColumnDefinition Width="60"/> 
            </Grid.ColumnDefinitions> 
            <ProgressBar Grid.Column="0" Height="24" HorizontalAlignment="Stretch" IsIndeterminate="{Binding Path=IsDiscovering}" Value="{Binding Path=PercentageDownloaded}" /> 
            <TextBlock Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center"><TextBlock x:Name="percentageDownloaded" /><TextBlock x:Name="percentageMeter">%</TextBlock></TextBlock> 
           </Grid> 
          </StackPanel> 
         </Grid> 
         <DataTemplate.Triggers> 
          <DataTrigger Binding="{Binding Path=IsDiscovering}"> 
           <DataTrigger.Value>True</DataTrigger.Value> 
           <Setter TargetName="percentageDownloaded" Property="Text" Value="N/A" /> 
           <Setter TargetName="percentageMeter" Property="Visibility" Value="Collapsed" /> 
          </DataTrigger> 
          <DataTrigger Binding="{Binding Path=IsDiscovering}"> 
           <DataTrigger.Value>False</DataTrigger.Value> 
           <Setter TargetName="percentageDownloaded" Property="Text" Value="{Binding Path=PercentageDownloaded}" /> 
           <Setter TargetName="percentageMeter" Property="Visibility" Value="Visible" /> 
          </DataTrigger> 
         </DataTemplate.Triggers> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ListBox> 
     </Border> 
    </Grid> 

漿紗窗口向上延伸列表框的內容就好了,但是當我大小下來,它保留了它的寬度,併產生垂直滾動條。

+0

只有當IsIndeterminate = true時纔會發生此行爲。我不知道爲什麼。刪除IsIndeterminate =「{綁定路徑= IsDiscovering}」修復了這個問題。 – Phil 2012-03-31 09:01:54

+0

進度條可能不知道它需要多少空間,只是聲稱它已經擁有的空間太糟糕了。 – DamonGant 2012-03-31 10:33:50

回答

2

您是否已經嘗試使用StackPanel作爲ItemsPanel?

<ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel Orientation="Vertical"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
+0

除了是一個非常古老的問題,這已被確認爲MS Connect上的一個錯誤,但不會被修復(不知道爲什麼)。 – Gant 2012-12-04 14:23:22