我有那个布局:
0+
我遇到的问题是,当光标位于TextBlock和边框背景上方时,我可以滚动,但是当它位于ListBox项目之上时我不能。 ListBox显示没有滚动条的所有项目。 我希望整个ListBox表现为一个控件。
为什么滚动只能在ListBoxes之上工作?
答案 0 :(得分:1)
如果滚动你的意思是鼠标滚轮,则它与ListBox
中的Popup
无关。这是因为ScrollViewer
是ListBox
默认模板的一部分。如果您想在其他位置处理滚动,则需要通过更改ScrollViewer
ListBox.Template
<ListBox>
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<ItemsPresenter/>
</ControlTemplate>
</ListBox.Template>
</ListBox>
答案 1 :(得分:0)
ScrollViewer
和ListBox
都支持滚动。
您的Grid
将允许其中的所有控件在分配给它的维度内尽可能多地扩展。在这种情况下,维度在功能上是无限的,因为Grid
包含在ScrollViewer
中。如果您希望ListBox
滚动而不是完全展开,则需要在Grid
上设置尺寸,或者摆脱ScrollViewer
。
尺寸设置:
<Popup>
<Border>
<ScrollViewer>
<Grid Height="200" Width="200">
<TextBlock/>
<ListBox/>
<TextBlock/>
<ListBox/>
</Grid>
</ScrollViewer>
</Border>
</Popup>
否ScrollViewer
:
<Popup>
<Border>
<Grid>
<TextBlock/>
<ListBox/>
<TextBlock/>
<ListBox/>
</Grid>
</Border>
</Popup>