我有一個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