2012-03-31 10 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 = "{Binding Path = IsDiscovering}"を削除すると、問題が修正されます。 – Phil

+0

プログレスバーはおそらくどれくらいのスペースが必要か分かりませんし、すでにスペースがあると言っています。 – DamonGant

答えて

2

すでにStackPanelをItemsPanelとして使用しようとしましたか?

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

非常に古い問題であることに加えて、これはすでにMS Connectのバグとして認められていますが、修正されることはありません(理由は分かりません)。 – Gant

関連する問題