da this question, ho eseguito il drill down del problema su una listbox, che non viene ridimensionata, quando gli oggetti Listbox si restringono. Si ridimensiona di conseguenza, quando la dimensione degli elementi aumenta, ma non si riduce, quando diminuisce la dimensione degli elementi.Silverlight 4: Listbox non si restringe quando i suoi articoli si restringono
Gli elementi possono aumentare o diminuire perché gli elementi contenenti caselle di testo, che vengono ridimensionate con l'input.
Geremia suggerito di iniziare una nuova domanda con più codice per mostrare, così qui andiamo:
La nostra casella di riepilogo il male è parte di un controllo utente, che contiene uno StackPanel con un'etichetta (HorizontalAlignment = Center), la casella di riepilogo (HA = sinistra) e un pulsante (HA = destra). Le voci della lista sono collegate a una ObservableCollection
Riconoscerete i bellissimi BackgroundColors sul ListBox e sui ListBoxItems. Li ho usati per essere in grado di dire che gli Articoli o la Listbox stessa non si restringono. Ho scoperto che gli articoli si restringono, ma la lista non lo fa.
Ok, ecco il codice della mia UserControl:
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel.Background>
<SolidColorBrush Color="{StaticResource ColorBasicDark}"/>
</StackPanel.Background>
<sdk:Label x:Name="LabelServiceName" FontSize="{StaticResource FontSizeMedium}" Margin="2" HorizontalAlignment="Center" Content="LabelServiceName">
<sdk:Label.Foreground>
<SolidColorBrush Color="{StaticResource ColorBasicLight}"/>
</sdk:Label.Foreground>
</sdk:Label>
<ListBox x:Name="ListBoxCharacteristics" BorderBrush="{x:Null}" Margin="0" HorizontalContentAlignment="Left" FontSize="9.333" HorizontalAlignment="Left">
<ListBox.Foreground>
<SolidColorBrush Color="{StaticResource ColorBasicLight}"/>
</ListBox.Foreground>
<!-- DataTemplate to display the content -->
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="StackPanelBorder" Orientation="Horizontal" HorizontalAlignment="Left">
<TextBox x:Name="TextBoxCharacteristicName" Style="{StaticResource InputTextBox}" Text="{Binding Name}" />
<TextBox x:Name="TextBoxSep" Style="{StaticResource ReadOnlyTextBox}" Text="=" />
<TextBox x:Name="TextBoxFuncOrValue" Style="{StaticResource InputTextBox}" Text="{Binding Value.Text}" />
<TextBox x:Name="TextBoxValue" Style="{StaticResource ReadOnlyTextBox}" />
<Button x:Name="ButtonRemove" Style="{StaticResource BasicButtonStyle}" Content="-" Click="ButtonRemove_Click" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Background" Value="Yellow" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.Background>
<SolidColorBrush Color="Red" />
</ListBox.Background>
</ListBox>
<Button x:Name="ButtonAddCharaDisplayObject" Style="{StaticResource BasicButtonStyle}" Content="+" HorizontalAlignment="Right" Click="ButtonAddCharaDisplayObject_Click" />
</StackPanel>
Non ho idea del perché la casella di riepilogo non si restringe quando la dimensione degli elementi ridursi, anche se ho impostato la' dimensione casella di riepilogo per Auto e HorizontalAlignment a sinistra
Grazie in anticipo, Frank
Grazie per aver dedicato del tempo per pubblicare questa soluzione alla propria domanda. Stavo avendo lo stesso problema e questo ha funzionato alla grande! –