protected override void OnOpened()

in Samples-NetCore/MusicManager/MusicManager.Presentation/Controls/Flyout.cs [44:87]


        protected override void OnOpened(EventArgs e)
        {
            base.OnOpened(e);
            var target = (FrameworkElement)PlacementTarget;
            var child = (FrameworkElement)Child;
            
            if (HorizontalFlyoutAlignment == HorizontalFlyoutAlignment.Left)
            {
                if (!SystemParameters.MenuDropAlignment)
                {
                    SetBaseHorizontalOffset(HorizontalOffset);
                }
                else
                {
                    // Handedness = right handed; shows the context menus on the left side
                    SetBaseHorizontalOffset(-target.ActualWidth + child.ActualWidth + HorizontalOffset);
                }
            }
            else if (HorizontalFlyoutAlignment == HorizontalFlyoutAlignment.Right)
            {
                if (!SystemParameters.MenuDropAlignment)
                {
                    SetBaseHorizontalOffset(target.ActualWidth - child.ActualWidth + HorizontalOffset);
                }
                else
                {
                    // Handedness = right handed; shows the context menus on the left side
                    SetBaseHorizontalOffset(HorizontalOffset);
                }
            }
            else
            {
                if (!SystemParameters.MenuDropAlignment)
                {
                    SetBaseHorizontalOffset((target.ActualWidth / 2) - (child.ActualWidth / 2) + HorizontalOffset);
                }
                else
                {
                    // Handedness = right handed; shows the context menus on the left side
                    SetBaseHorizontalOffset((-target.ActualWidth / 2) + (child.ActualWidth / 2) + HorizontalOffset);
                }
            }
            child.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
        }