private void HandleQueryOnUiThread(System.Windows.Rect queryBounds) { IntPtr windowHandle = new WindowInteropHelper(PaintingWindow).Handle; var windowId = windowHandle.ToString(); var snapshot = context.CreateSnapshot(); snapshot.AddWindowId(windowId); var bounds = snapshot.CreateBounds(InteractionBoundsType.Rectangular); bounds.SetRectangularData(queryBounds.Left, queryBounds.Top, queryBounds.Width, queryBounds.Height); System.Windows.Rect queryBoundsRect = new System.Windows.Rect(queryBounds.Left, queryBounds.Top, queryBounds.Width, queryBounds.Height); foreach (var kv in gazeAwareButtons) { Button b = kv.Value; InteractorId id = kv.Key; CreateGazeAwareInteractor(id, b, Literals.RootId, windowId, snapshot, queryBoundsRect); } snapshot.Commit((InteractionSnapshotResult isr) => {}); }