У меня есть StackPanel
внутри ScrollViewer
, и я хотел бы связать элементы и определить их таблицу данных, поэтому я использую ItemsControl
.Кажется, проблема в том, что ItemsControl
не реализует IScrollSnapPointsInfo, и это нарушает мои вертикальные точки привязки, связанные с StackPanel
потомками и ScrollViewer
.
. Эти вертикальные точки привязки должны позволять элементам, связанным спанель стека для выравнивания в вертикальном центральном положении средства просмотра при прокрутке.
Ниже приведен пример кода:
<ScrollViewer x:Name="ScrollViewer"
ZoomMode="Disabled"
ZoomSnapPointsType="None"
VerticalSnapPointsType="Mandatory"
VerticalSnapPointsAlignment="Center">
<ScrollViewer.Content>
<Grid>
<!-- Start StackPanel -->
<StackPanel x:Name="StackPanel" Margin="0,500,0,500" Orientation="Vertical">
<StackPanel.Children>
<ItemsControl ItemsSource="{x:Bind Items, Mode=OneWay}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="model:ScrollItem">
<Button Margin="8,0">
<Button.Content>
<Grid>
<TextBlock Text="Hello" Foreground="Black" FontSize="20" />
</Grid>
</Button.Content>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel.Children>
</StackPanel>
<!-- End StackPanel -->
</Grid>
</ScrollViewer.Content>
</ScrollViewer>
Кто-нибудь имеет опыт работы с этим?любой совет о том, как я могу восстановить вертикальные точки привязки и по-прежнему привязывать к панели стека, был бы полезен.
В идеале я хотел бы просто привязать список элементов к панели стека и определить шаблон в xaml.Это намного лучше, чем создавать элементы в коде и т. Д. *