对于WPF中的控件,有一个BringIntoView()
函数将自动滚动父控件以查看整个控件。MAUI中的ContentView有类似的东西吗?
编辑:
根据@FreakyAli的评论,如果没有这样的事件,怎么可能发生?如何在自定义视图设置为CollectionView.ItemTemplate
的情况下自动滚动包含ExtendedFlexLayout
控件的ScrollView
?我的ScrollView
看起来像这样:
<ScrollView VerticalScrollBarVisibility="Default" >
<controls:ExtendedFlexLayout
AlignItems="Start"
Direction="Row"
Wrap="Wrap"
ItemsSource="{Binding PacksList}">
<controls:ExtendedFlexLayout.ItemTemplate>
<DataTemplate>
<views:PackView />
</DataTemplate>
</controls:ExtendedFlexLayout.ItemTemplate>
</controls:ExtendedFlexLayout>
</ScrollView>
ExtendedFlexLayout
是一个自定义FlexLayout控件。
基于@ewerspej注释,我发现ScrollToAsync()
事件有两个构造函数。两个构造函数都接受三个参数,第三个参数用于为两个构造函数的滚动过程设置动画。
第一个构造函数允许您使用Scroll a position into view
,它传递两个double
类型的值,一个用于x
(水平(,一个为y
(垂直(。
await scrollView.ScrollToAsync(0, 150, true);
第二个构造函数用于Scroll an element into view
,它接受视觉元素作为第一个参数,第二个参数是ScrollToPosition
枚举,它提供了四个选项:MakeVisible
、Start
、Center
和End
。
以下示例将显示标签,并将其与scrollView
控件的底部对齐:
await scrollView.ScrollToAsync(label, ScrollToPosition.End, true);
此处是指向Microsoft MAUIScrollView
页面的链接。