【发布时间】:2010-06-24 13:05:21
【问题描述】:
从this question,我将问题深入到一个列表框,当列表框项目缩小时,它不会调整大小。当项目的大小增加时它会相应地调整大小,但当项目的大小减小时它不会缩小。
项目可以增长/缩小,因为项目包含文本框,会随着输入调整大小。
Jeremiah 建议用更多代码开始一个新问题,所以我们开始吧:
我们邪恶的列表框是 UserControl 的一部分,它包含一个带有标签 (HorizontalAlignment=Center) 的 StackPanel、列表框 (HA=Left) 和一个按钮 (HA=Right)。列表框项数据链接到 ObservableCollection
您会在 ListBox 和 ListBoxItems 上认出漂亮的 BackgroundColors。我用它们来判断项目或列表框本身是否没有缩小。我发现 Items 缩小了,但 Listbox 没有。
好的,这是我的 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>
我不知道为什么当项目的大小缩小时列表框不会缩小,尽管我已将列表框的大小设置为 Auto 并将 HorizontalAlignment 设置为 Left
提前致谢, 弗兰克
【问题讨论】:
标签: silverlight listbox