Exemplo n.º 1
0
        /// <inheritdoc/>
        public override void Deactivate(UltravioletContext uv, DependencyObject dobj)
        {
            if (selector == null)
            {
                var dprop = DependencyProperty.FindByStylingName(uv, dobj, propertyName.Owner, propertyName.Name);
                if (dprop != null)
                {
                    dobj.ClearTriggeredValue(dprop, this);
                }
            }
            else
            {
                var element = dobj as UIElement;
                if (element != null && element.View != null)
                {
                    var rooted = selector.PartCount == 0 ? false :
                                 String.Equals(selector[0].PseudoClass, "trigger-root", StringComparison.InvariantCultureIgnoreCase);
                    var target = rooted ? dobj as UIElement : null;

                    element.View.Select(target, selector, this, (e, s) =>
                    {
                        var action = (SetTriggerAction)s;
                        var dprop  = DependencyProperty.FindByStylingName(e.Ultraviolet, e, action.propertyName.Owner, action.propertyName.Name);
                        if (dprop != null)
                        {
                            e.ClearTriggeredValue(dprop, action);
                        }
                    });
                }
            }
            base.Deactivate(uv, dobj);
        }