我有一个scrollviewer其中包含一个childview。如果该子视图中的任何内容具有焦点并按下/上键,则内容向下/向上滚动。停止从上/下键上滚动滚动查看器
如果我没有实现基于箭头键的导航系统,这不会成为问题。所以我使用这4个箭头键更轻松地在对象之间导航。现在的问题是,当用户按下或关闭时,内容会滚动。我想禁用滚动行为。
我已经尝试了一些事情:
- 添加KeyDown事件的ScrollViewer中,但它从来没有被击中。
- 在滚动查看器中将istabstop设置为false
- 将我的scrollviewer中的grid上的keyeventargs设置为“已处理”为true,然后我的代码被执行(导航),因此无法使用它。
编辑
这是事件是如何在XAML处理:
<i:Interaction.Behaviors>
<catel:KeyPressToCommand Command="{Binding CancelCellInputCommand}" Key="Escape" />
<catel:KeyPressToCommand Command="{Binding LeftArrowNavigationCommand}" Key="Left"/>
<catel:KeyPressToCommand Command="{Binding UpArrowNavigationCommand}" Key="Up"/>
<catel:KeyPressToCommand Command="{Binding RightArrowNavigationCommand}" Key="Right"/>
<catel:KeyPressToCommand Command="{Binding DownArrowNavigationCommand}" Key="Down"/>
</i:Interaction.Behaviors>
任何其他解决方案,我可能会尝试阻止我从内容上滚动按键向上/向下?
编辑2:
更多的研发后,我看到为什么子弹1点起这样,原因是becasue的ScrollViewer中吃keydown事件,可能使滚动发生。尽管如此,我还没有找到解决方法。有些人说他把他的“IsTabStop”设置为假,但这没有任何区别。捕捉KeyUp确实有效,但为防止按键滚动太迟了。我最后的手段是不使用向上/向下键来实现我想要的功能,但在cellgrid中上下需要上/下键,这只是逻辑。
我很感谢这方面的任何帮助和想法,因为我真的在这个问题上停滞不前。
你是如何实施导航系统的?在窗口中键入绑定?通过处理PreviewKeyDown? – GameAlchemist 2012-07-26 13:22:39
@VincentPiel:更新了问题,你可以看到我现在如何获得我的活动。 – Terry 2012-07-26 14:13:17