Содержание ListBox не изменяется при уменьшении размера окна - PullRequest
0 голосов
/ 31 марта 2012

Я использую .NET 4.0 (не .NET 4.0 CP) и столкнулся с такой уникальной проблемой.Я создал ListBox для отображения связанных элементов, во-первых, это (часть) моего XAML.

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

Изменение размера окна растягивает содержимое ListBox просто отлично, но когда я уменьшаю его размер, оно сохраняетего ширина и порождает вертикальные полосы прокрутки.

1 Ответ

2 голосов
/ 04 декабря 2012

Вы уже пытались использовать StackPanel в качестве ItemsPanel?

    <ListBox.ItemsPanel>
       <ItemsPanelTemplate>
            <StackPanel Orientation="Vertical"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...