我有一个ItemsControl来托管一些输入控件(文本框等)。当我点击ItemsControl的背景时,焦点会自动更改为ItemsControl中的第一个项目。
有没有办法防止这种情况发生?我已经尝试在不调用base的情况下覆盖ItemsControl上的OnGotFocus,但它没有用。
先谢谢!
雅克。
答案 0 :(得分:1)
好的,我弄清楚导致第一个元素获得焦点的原因。在我的例子中,我使用托管自定义ItemsControl的ScrollViewer。其中的ItemsControl和容器将IsTabStop设置为false。焦点的改变是由OnMouseLeftButtonDown方法中的ScrollViewer完成的。
由于ScrollViewer是密封的,我必须覆盖容器上的OnMouseLeftButtonDown和ItemsControl以将e.Handled设置为true。这解决了我的问题。