在我的应用程序中,我将带有Canvas的ItemsControl作为ItemsPanelTemplate。 itemspanel源项是thumb对象,可以拖放。如果项目退出屏幕视图,我不能滚动查看它们。我想怎么做? 我的代码在下面:
<ItemsControl ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Canvas.Left" Value="{Binding XPosition}"/>
<Setter Property="Canvas.Top" Value="{Binding YPosition}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
答案 0 :(得分:2)
首先,您需要使用ItemsControl
包围ScrollViewer
(与ListBox不同,后者在其控件模板中包含它):
<ScrollViewer>
<ItemsControl> ... </ItemsControl>
<ScrollViewer>
其次,Canvas
在其子女之后不会自我调整大小。所以你有几个选择:
Margin
属性设置位置。Width
和Height
属性。