Beispiel #1
0
        private void FocusOnPosition(Point position)
        {
            if (root is IInputElementContainer)
            {
                Focused = null;

                IInputElementContainer container = (IInputElementContainer)root;

                FocusOnPositionInContainer(position, container);
            }
        }
Beispiel #2
0
        private void FocusOnPositionInContainer(Point position, IInputElementContainer container)
        {
            if (container.Bounds.Contains(position))
            {
                Focused = container;

                foreach (IInputElement child in container.Children.Reverse())
                {
                    if (child.Bounds.Contains(position))
                    {
                        if (child is IInputElementContainer)
                        {
                            if (child.IsFocusable)
                            {
                                Focused = child;
                            }

                            FocusOnPositionInContainer(position, (IInputElementContainer)child);

                            if (Focused != null)
                            {
                                break;
                            }
                        }
                        else
                        {
                            if (child.IsFocusable)
                            {
                                Focused = child;
                            }

                            break;
                        }
                    }
                }
            }
        }