Silverlight 4:当项目缩小时,列表框不会缩小

Silverlight 4:当项目缩小时,列表框不会缩小,第1张

概述从 this question开始,当Listbox-Items缩小时,我将问题深入到列表框中,但没有调整大小.当项目的大小增加时,它会相应地调整大小,但是当项目的大小减小时,它不会缩小. 项目可以增长/缩小,因为包含文本框的项目会随输入调整大小. Jeremiah建议用更多代码开始一个新问题,所以我们走了: 我们的邪恶列表框是UserControl的一部分,它包含一个带有Label(Horizo @H_403_0@ @H_403_0@ 从 this question开始,当ListBox-Items缩小时,我将问题深入到列表框中,但没有调整大小.当项目的大小增加时,它会相应地调整大小,但是当项目的大小减小时,它不会缩小.

项目可以增长/缩小,因为包含文本框的项目会随输入调整大小.

Jeremiah建议用更多代码开始一个新问题,所以我们走了:

我们的邪恶列表框是UserControl的一部分,它包含一个带有Label(Horizo​​ntalAlignment = Center)的StackPanel,列表框(HA = left)和一个button(HA = Right). ListBox-items被数据链接到ObservableCollection

您将识别ListBox和ListBoxItems上的漂亮Backgroundcolors.我用它们来告诉项目或列表框本身不会缩小.我发现,项目缩小,但列表框没有.

好的,这是我的UserControl的代码:

@H_502_21@<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,而将Horizo​​ntalAlignment设置为left,但我不知道为什么列表框在缩小项目大小时不会缩小

提前致谢,
坦率

解决方法 我终于在 this post中找到了解决方案.问题是,从Silverlight 3开始,ListBox使用VirtualizationStackPanel来显示ListItems.除了StackPanel之外,VirtualizationStackPanel使用它获得的所有空间并且永远不会将其返回.因此,当列表中的最大项目缩小时,因此ListBox本身可能会缩小,因为现在存在未使用的空间,ListBox的宽度(以及此类的高度)仍将保持不变,因为VirtualizationStackPanel未正确收缩.

要解决这个问题,我们可以强制ListBox使用StackPanel而不是VirtualizationStackPanel.请注意,这可能会以性能为代价!

@H_502_21@<ListBox HorizontalContentAlignment="left" FontSize="9.333" HorizontalAlignment="left"> ... // other ListBox related stuff <ListBox.ItemsPanel> <ItemsPanelTemplate> <StackPanel /> </ItemsPanelTemplate> </ListBox.ItemsPanel></ListBox> @H_403_0@ 总结

以上是内存溢出为你收集整理的Silverlight 4:当项目缩小时,列表框不会缩小全部内容,希望文章能够帮你解决Silverlight 4:当项目缩小时,列表框不会缩小所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存