我有一个ListBox
,其中包含User
个DataTemplate
项,UserControl
在ListBox
中显示为UserControl
。每个ListBox
都可以扩展。首先,UserControl
足够大,可以在未展开的状态下显示它们。我遇到的问题是,当这些ListBox
中的一些被展开时,它们会延伸出ListBox
的可见区域。 ScrollBar
无法识别此事实,即使将Visible
设置为DoubleAnimation
,也不会显示UserControl
。
当用户点击每个按钮时,我使用ListBox
来更改UserControl
高度。是否有我需要做的事情,或ScrollBar
上必须设置的一些设置,以使其注册表示其项目的WrapPanel
的大小更改并显示ListBox.ItemsPanel
什么时候需要?
编辑>>>
我已将问题跟踪到我在WrapPanel
中使用的自定义ScrollBar
。当我删除它或将其替换为标准Panel
时,会在需要时显示ScrollBar
。我从一篇关于creating custom WPF panels的好文章中获得了{{1}}的代码。任何人都可以看到文章中给出的代码中缺少什么,以及为什么它可能会阻止{{1}}显示?
答案 0 :(得分:0)
我想知道ListBoxes是否正常做你期望的事情?如果您知道项目大小何时发生变化,您可以尝试在ListBox上调用InvalidateMeasure / Layout,只是为了看?
答案 1 :(得分:0)
我决定再次完全编写自定义WrapPanel
代码,这次它正常工作!将新版本与之前版本进行比较时,我可以看到在测量计算中+ =缺少+ =因此Panel
认为项目比实际要小得多...因此没有ScrollBar
秒。
因此,如果您遇到此问题,请仔细检查您的测量代码。