在 ScrollView 中添加 TabView 时,如果 TabView 位于屏幕外,则似乎会向 ScrollView 发送一些信号以更改其滚动视图垂直偏移位置。即使是 WinUI3 Gallery 示例中的简单 TabView 示例也具有相同的作用。
以我的拙见,预期的行为是将 ScrollView 保留到偏移位置 0,但情况似乎并非如此。
有人知道解决办法吗?
我终于找到了两个解决方法。 TabView 似乎正在请求 BringIntoViewRequest。
Handled
,那么就不会触发ScrollView的ChangeView事件private void TabView_BringIntoViewRequested(UIElement sender, BringIntoViewRequestedEventArgs args)
{
args.Handled = true;
}
<ScrollViewer Grid.Row="1" Name="CurrentScrollViewer" HorizontalScrollMode="Enabled" HorizontalScrollBarVisibility="Visible"
ViewChanged="{x:Bind ViewModel.ScrollViewer_OnViewChanged}" HorizontalAlignment="Stretch"
ViewChanging="CurrentScrollViewer_ViewChanging"
BringIntoViewOnFocusChange="False"
>
<StackPanel x:Name="stackPanel" Margin="0,0,5,0" Spacing="5" MaxWidth="850" />
</ScrollViewer>