当子控件获得输入焦点时,为什么ScrollViewer
无法接收键盘输入?
场景如下:打开一个WPF窗口,将焦点设置到嵌入在ScrollViewer
中的控件上。
我按上下左右键,但是ScrollViewer
似乎无法处理这些键盘事件,有人知道原因吗?
以下是最简单的示例:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
FocusManager.FocusedElement="{Binding ElementName=control}"
>
<Grid>
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
>
<ItemsControl
x:Name="control"
Width="1000"
Height="1000"
/>
</ScrollViewer>
</Grid>
</Window>
当您启动包含此窗口的应用程序时,“control”似乎具有我预期的焦点。按键似乎会导致冒泡键事件到达
ScrollViewer
(使用WPF Snoop进行检查)。我无法弄清楚为什么它不响应输入。