I have a few nested gaze-aware elements in my WPF application. In this case, a ListBoxItem that contains “move up” and “move down” buttons on each list box element. I have a WpfInteractor registered for the ListBoxItem and for both the up and down buttons.
The WpfInteractor.GetGazePointDataStream().GazePoint() calls the GazePont callback even if the gaze is on the top most element. Is there a way to tell the interactor to ignore gaze to a child element that also has an attached WpfInteractor?
Hi @generalfault, I am afraid that there is not a way to tell the interactor to ignore the child object, as the gaze stream event being used is using builds on Gaze Aware, which is hierarchical: ie parent elements have focus if children have focus.
If you only want to know if the up or down arrow has gaze focus (or the actual list box item as well of course), you can just use the HasFocus (or HasActivationFocus/TentativeActivationFocus) properties or corresponding callbacks and only get simple events for that, you don’t need to use the actual gaze points for anything. For that, there is even built-in xaml support if you don’t want to use code behind. Hopefully this answers your question!