Exemplo n.º 1
0
        protected override void OnTargetChanged(FrameworkElement oldTarget, FrameworkElement newTarget)
        {
            base.OnTargetChanged(oldTarget, newTarget);

            FrameworkElement resolvedControl;

            if (String.IsNullOrEmpty(TargetName) && !IsTargetObjectSet)
            {
                if (!VisualStateUtilities.TryFindNearestStatefulControl(AttachedObject, out resolvedControl) && (null != resolvedControl))
                {
                    throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture,
                                                                      "Target {0} does not define any VisualStateGroups.",
                                                                      new object[]
                    {
                        resolvedControl.Name
                    }));
                }
            }
            else
            {
                resolvedControl = Target;
            }

            StateTarget = resolvedControl;
        }
Exemplo n.º 2
0
        protected override void Invoke(object parameter)
        {
            if (null != StateTarget && Enum.IsDefined(typeof(ApplicationViewState), parameter))
            {
                string stateName;
                var    viewState = (ApplicationViewState)parameter;

                switch (viewState)
                {
                case ApplicationViewState.FullScreenLandscape:
                    stateName = FullScreenLandscapeStateName;
                    break;

                case ApplicationViewState.FullScreenPortrait:
                    stateName = FullScreenPortraitStateName;
                    break;

                case ApplicationViewState.Filled:
                    stateName = FilledStateName;
                    break;

                case ApplicationViewState.Snapped:
                    //if (Window.Current.Bounds.Left > 0)
                    //    Debug.WriteLine("Right side");
                    //else
                    //    Debug.WriteLine("Left side");
                    stateName = SnappedStateName;
                    break;

                default:
                    stateName = string.Empty;
                    break;
                }

                if (string.IsNullOrEmpty(stateName))
                {
                    stateName = viewState.ToString();
                }

                VisualStateUtilities.GoToState(StateTarget, stateName, UseTransitions);
            }
        }