是否可以在WPF框架中禁用默认ScrollViewer的这种内置行为?方案如下:
我想禁用此行为,但我不知道如何处理此问题。我是否需要编写自己的ScrollViewer控件或者有一个附加的属性我不知道禁用了这个" ScrollIntoView"逻辑。以下是该场景的一些代码片段:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackPanel>
<Button Content="Focus Item 6" Margin="10" Click="Button_Click"/>
<TextBox Text="Lost focus" Margin="10"/>
</StackPanel>
<ScrollViewer Grid.Row="1">
<StackPanel>
<TextBox Text="Item 1" Height="100" x:Name="Item1"/>
<TextBox Text="Item 2" Height="100" x:Name="Item2"/>
<TextBox Text="Item 3" Height="100" x:Name="Item3"/>
<TextBox Text="Item 4" Height="100" x:Name="Item4"/>
<TextBox Text="Item 5" Height="100" x:Name="Item5"/>
<TextBox Text="Item 6" Height="100" x:Name="Item6"/>
</StackPanel>
</ScrollViewer>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
this.Item6.Focus();
}
感谢您的帮助。
答案 0 :(得分:0)
经过互联网深入搜索后,我发现this answer。感谢AndrewS在该主题中的回答。基本上我要做的就是在ScrollViewer控件中处理Panel的 RequestBringIntoView 事件,或者在我的例子中处理 StackPanel 。