.net 聚焦放置在ScrollViewer中的UIElement导致UIElement滚动到视图中,我可以禁用此功能吗?
是否可以在WPF框架中禁用默认ScrollViewer的这种内置行为?情况如下:.net 聚焦放置在ScrollViewer中的UIElement导致UIElement滚动到视图中,我可以禁用此功能吗?,.net,wpf,scrollviewer,.net,Wpf,Scrollviewer,是否可以在WPF框架中禁用默认ScrollViewer的这种内置行为?情况如下: 我有一个ScrollViewer,里面有一个StackPanel 在该StackPanel中有许多UIElement(例如TextBox控件) 使用Focus()方法聚焦其中一个TextBox控件(当前不可见)会使TextBox显示在视图中 我想禁用此行为,但我不确定如何实现。我是否需要编写自己的ScrollViewer控件,或者有一个我不知道的附加属性禁用了这个“ScrollIntoView”逻辑。以下是该场
- 我有一个ScrollViewer,里面有一个StackPanel
- 在该StackPanel中有许多UIElement(例如TextBox控件)
- 使用Focus()方法聚焦其中一个TextBox控件(当前不可见)会使TextBox显示在视图中
<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();
}
私有无效按钮\u单击(对象发送者,路由目标e)
{
this.Item6.Focus();
}
谢谢你的帮助。在通过互联网进行深入搜索后,我找到了。感谢安德鲁斯在这篇文章中的回答。基本上,我要做的是处理ScrollViewer控件内面板的RequestBringIntoView事件,或者在我的示例中,在通过internet进行深入搜索后处理StackPanel。感谢安德鲁斯在这篇文章中的回答。基本上,我要做的是处理ScrollViewer控件内面板的RequestBringIntoView事件,或者在我的示例中处理StackPanel您能告诉我如何通过代码处理StackPanel的RequestBringIntoView吗?我仍然很困惑。这是一个事件,只需附加一个事件处理程序。您能告诉我您是如何通过代码处理StackPanel的RequestBringIntoView的吗?我仍然很困惑。这是一个事件,只需附加一个事件处理程序