internal void InvokeImpl(FrameworkElement stateTarget) { if (stateTarget != null) { VisualStateUtilities.GoToState(stateTarget, this.StateName, this.UseTransitions); } }
private void Evaluate() { if (this.TargetObject != null) { string stateName = null; if (ComparisonLogic.EvaluateImpl(this.Binding, ComparisonConditionType.Equal, this.Value)) { stateName = this.TrueState; } else { stateName = this.FalseState; } VisualStateUtilities.GoToState(this.TargetObject, stateName, true); } }
/// <summary> /// Called when the target changes. If the TargetName property isn't set, this action has custom behavior. /// </summary> /// <param name="oldTarget"></param> /// <param name="newTarget"></param> /// <exception cref="InvalidOperationException">Could not locate an appropriate FrameworkElement with states.</exception> protected override void OnTargetChanged(FrameworkElement oldTarget, FrameworkElement newTarget) { base.OnTargetChanged(oldTarget, newTarget); FrameworkElement frameworkElement = null; if (string.IsNullOrEmpty(this.TargetName) && !this.IsTargetObjectSet) { VisualStateUtilities.TryFindNearestStatefulControl(this.AssociatedObject as FrameworkElement, out frameworkElement); } else { frameworkElement = this.Target; } this.StateTarget = frameworkElement; }
internal void InvokeImpl(FrameworkElement stateTarget) { if (stateTarget != null && !string.IsNullOrEmpty(this.ActiveState) && !string.IsNullOrEmpty(this.InactiveState) && !string.IsNullOrEmpty(this.TargetScreen)) { UserControl screen = stateTarget .GetSelfAndAncestors() .OfType <UserControl>() .FirstOrDefault(control => control.GetType().ToString() == this.TargetScreen); string stateName = this.InactiveState; if (screen != null) { stateName = this.ActiveState; } if (!string.IsNullOrEmpty(stateName)) { ToggleButton toggleButton = stateTarget as ToggleButton; if (toggleButton != null) { switch (stateName) { case "Checked": toggleButton.IsChecked = true; return; case "Unchecked": toggleButton.IsChecked = false; return; } } if (stateName == "Disabled") { stateTarget.IsEnabled = false; return; } VisualStateUtilities.GoToState(stateTarget, stateName, true); } } }
/// <summary> /// Called when the target changes. If the TargetName property isn't set, this action has custom behavior. /// </summary> /// <param name="oldTarget"></param> /// <param name="newTarget"></param> /// <exception cref="InvalidOperationException">Could not locate an appropriate FrameworkElement with states.</exception> protected override void OnTargetChanged(FrameworkElement oldTarget, FrameworkElement newTarget) { base.OnTargetChanged(oldTarget, newTarget); FrameworkElement frameworkElement = null; if (string.IsNullOrEmpty(this.TargetName) && !this.IsTargetObjectSet) { bool successful = VisualStateUtilities.TryFindNearestStatefulControl(this.AssociatedObject as FrameworkElement, out frameworkElement); if (!successful && frameworkElement != null) { throw new InvalidOperationException(); } } else { frameworkElement = this.Target; } this.StateTarget = frameworkElement; }