C# 在弹出窗口中滚动列表框
我有这样的布局:C# 在弹出窗口中滚动列表框,c#,wpf,xaml,listbox,popup,C#,Wpf,Xaml,Listbox,Popup,我有这样的布局: <Popup> <Border> <ScrollViewer> <Grid> <TextBlock/> <ListBox/> <TextBlock/> <ListBox/> </G
<Popup>
<Border>
<ScrollViewer>
<Grid>
<TextBlock/>
<ListBox/>
<TextBlock/>
<ListBox/>
</Grid>
</ScrollViewer>
</Border>
</Popup>
我的问题是,当光标位于文本块和边框背景上方时,我可以滚动,但当光标位于列表框项目上方时,我不能滚动。
列表框显示不带滚动条的所有项目。
我希望整个列表框作为一个控件
为什么滚动不能只在列表框上方工作?这两个
ScrollViewer
和ListBox
都支持滚动。
您的网格
将允许网格中的所有控件在分配给它的维度内尽可能多地展开。在这种情况下,尺寸在功能上是无限的,因为网格
被封装在滚动查看器
中。如果希望列表框
滚动而不完全展开,则需要在网格
上设置尺寸,或者取消滚动查看器
尺寸集:
<Popup>
<Border>
<ScrollViewer>
<Grid Height="200" Width="200">
<TextBlock/>
<ListBox/>
<TextBlock/>
<ListBox/>
</Grid>
</ScrollViewer>
</Border>
</Popup>
如果滚动指的是鼠标滚轮,那么它与
列表框
处于弹出窗口
中无关。这是因为ScrollViewer
是ListBox
默认模板的一部分。如果您想在其他地方处理滚动,您需要通过更改ListBox.Template
<ListBox>
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<ItemsPresenter/>
</ControlTemplate>
</ListBox.Template>
</ListBox>
当您在列表框
上滚动时,您将滚动该列表框
。我想你说的是鼠标滚轮滚动。你有winrt/universal或Windows phone项目而不是WPF吗?
<ListBox>
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<ItemsPresenter/>
</ControlTemplate>
</ListBox.Template>
</ListBox>