Home › Forums › Software Development › Change the occluder dimension of a control (C#, WPF)
Tagged: occluder, RadioButton, WPF
- This topic has 7 replies, 2 voices, and was last updated 5 years, 3 months ago by Grant [Tobii].
- 26/10/2017 at 15:38 #7512
I’m sorry if you will also find the duplicate of this topic, I’ve opened it with another account, but I’m now retyring because I cannot see it on the forum nor I got any notification nor signal that it has been effectively published. I think something is wrong with my old account 🙂
my issue is subtle, and it’s about the dimension of the “gazeable” area (I read somewhere it’s called “occluder”, am I right?) of a WPF control, in particular “RadioButton”.
I’m using the eyetracker as an input controller, and in the software I’m developing I’ve got a grid of radiobuttons like this, with which I have to precisely interact:
Those radiobuttons get selected with a GazeAwareBehavior.
The problem is that the default occluder is too big. So, when I have to pass from a Radiobutton to another doing a movement like this drawn in white:
The blue or pink RadioButton (which area is drawn in blue and pink) get selected, unless I do a VERY fast eye movement. I don’t want this, I want precise selections. And I cannot afford to introduce even small delays to fix this.
So the question is:
in order to fix this, is there a way to change the default occluder assigned to a RadioButton, or simply reduce its size, which is my final goal?
Thank you all for your attention.27/10/2017 at 22:27 #7519
Hi @eyerpheus, whilst the Gaze Aware area is something that can be reconfigured for polygonal elements such as buttons, shapes, etc, this may not be possible to adjust for WPF components such as radio buttons.
However, I am in touch with the developers and we will try to find out if there is a workaround to suit your needs.
It might also be handy if you could kindly share with us the code if possible to speed up resolution. Many thanks.31/10/2017 at 12:06 #7528
Thank you for your answer,
given that it may be impossible to change the occluder of a WPF control, how can I design my own object defining the occluder? Can you give me an example? It will be fine enough for me 🙂
I would like to share the code with you, but since this is an university degree thesis, I’m still a bit hesitant about sharing the whole code publicly to the world. Maybe I can publish there on the forum only the part of the code (with comments) which is responsible for drawing the grid, or I can share the code of the whole project if you can give me an email where to send it.
Thank you again01/11/2017 at 06:43 #7529
Hi @eyerpheus, that’s okay, I understand your reluctance to share the code publicly.
You can upload the project to the cloud and PM a private link thereafter I can confer with the developers regarding
the best way we can help you achieve your need with the minimum of modification to your existing code.. certainly
replacing all the radio buttons with a polygonal shape might prove necessary in the end, but I just want to double
check we can’t alter the parameters for the WPF control Gaze Aware Area to save you this inconvenience. Thanks.02/11/2017 at 16:41 #7533
Whole project sent via PM!
Thank you.14/11/2017 at 16:21 #7585
Hi @eyerpheus, an update ont this issue.
After conferring with colleagues, I can confirm that unfortunately it is not possible to alter the gaze aware region for the radio button WPF component.
Accordingly you can either separate the distance between existing radio buttons (which would seem the route involving the least coding) or alternatively choose instead a polygonal shape as the WPF component for which you can more easily adjust the gaze aware area. (the Gaze aware area is automatically configured as the polygon shape area by default).
An example of how you can accomplish this in included with the Core SDK samples, specifically the “Interaction_VirtualWindows_101” sample application.
Sorry to bring you disappointing news, but hopefully you can alter your program without too much issue. Please let us know if we can be of further assistance.23/11/2017 at 17:36 #7637
First of all, thank you for your help 🙂 even if the problem is not solved yet.
I realized to work around the problem (simply, I extended the RadioButton class and added a Rectangle to its fields, which works as occluder. I simply assign the behavior to the rectangle instead of the RadioButton).
Anyway, I’m not able anyway to get the “gazeable area” under a defined dimension… I mean: even if the Rectangle gets smaller, the problem is the same, the occluder doesn’t go under a certain dimension.
Is there an “automatic limit” for any shape?
I tried using a polygonal shape instead of a Rectangle (class Polygon), but I got very strange problems.
It was like only two polygons got the gaze aware ability, and only on a vertical span! I mean, they got reactive as they were occupying all the screen, from the bottom to the upper part!!
Is there any known issue with the Polygon class? Am I using the wrong class?28/11/2017 at 09:03 #7642
Hi @eyerpheus, yes indeed there will be always a minimum size limit for the user defined gazeable area.
Consider that eye tracking accuracy will always be limited by biological considerations such an inherent jittery movements of the eye and that the eye ball itself will not move if focus is shifted only by a few millimetres, meaning that accuracy is not a technological limitation of the eye tracker itself.
Accordinly, you will need to ensure that the distance between stimuli is sufficient to account for this within the design of your program. I don’t have the exact figure for minimum size of gazeable area, but I will try to get you those numbers.
Certainly, you are on the right track using the Rectangle class, so no need to go with polygonal class as it seems the shapes you are trying to cover are roughly square rotated 45 degrees.
Will the greater distribution between successive radio buttons be particularly problematic for the project?
- You must be logged in to reply to this topic.