2012-03-31 12 views
0

Ich benutze .NET 4.0 (nicht .NET 4.0 CP) und habe in diesem ein einzigartiges Problem laufen. Ich habe eine ListBox erstellt, um gebundene Elemente anzuzeigen, zuerst hier ist (ein Teil) von meinem XAML.ListBox Inhalt wird nicht verkleinert, wenn Fenster kleiner gemacht wird

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

Sizing das Fenster erstreckt sich der List-Box Inhalt ganz gut, aber wenn ich es Größe nach unten, es behält es Breite ist und laicht vertikale Scrollbalken.

+0

Dieses Verhalten tritt nur auf, wenn IsIndeterminate = True ist. Ich weiß nicht warum. Durch das Entfernen von IsIndeterminate = "{Binding Path = IsDiscovering}" wird das Problem behoben. – Phil

+0

Der Fortschrittsbalken weiß wahrscheinlich nicht, wie viel Platz er benötigt und beansprucht nur den Platz, den er bereits hat, schade. – DamonGant

Antwort

2

Haben Sie bereits versucht, ein StackPanel als ItemsPanel zu verwenden?

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

Abgesehen davon, dass es sich um ein sehr altes Problem handelt, wurde dies bereits als Fehler bei MS Connect anerkannt, aber nicht behoben (keine Ahnung, warum nicht). – Gant

Verwandte Themen