コード例 #1
0
        private static void OnPropertyChanged(DependencyObject dpo, DependencyPropertyChangedEventArgs e)
        {
            UIElement uIElement = dpo as UIElement;

            if (uIElement == null)
            {
                return;
            }
            BehaviorCollection         behaviors = Interaction.GetBehaviors(uIElement);
            StylizedBehaviorCollection newValue  = e.NewValue as StylizedBehaviorCollection;
            StylizedBehaviorCollection oldValue  = e.OldValue as StylizedBehaviorCollection;

            if (newValue == oldValue)
            {
                return;
            }
            if (oldValue != null)
            {
                foreach (Behavior behavior in oldValue)
                {
                    int indexOf = StylizedBehaviors.GetIndexOf(behaviors, behavior);
                    if (indexOf < 0)
                    {
                        continue;
                    }
                    behaviors.RemoveAt(indexOf);
                }
            }
            if (newValue != null)
            {
                foreach (Behavior behavior1 in newValue)
                {
                    if (StylizedBehaviors.GetIndexOf(behaviors, behavior1) >= 0)
                    {
                        continue;
                    }
                    Behavior behavior2 = (Behavior)behavior1.Clone();
                    StylizedBehaviors.SetOriginalBehavior(behavior2, behavior1);
                    behaviors.Add(behavior2);
                }
            }
        }
コード例 #2
0
        private static int GetIndexOf(BehaviorCollection itemBehaviors, Behavior behavior)
        {
            int      num = -1;
            Behavior originalBehavior = StylizedBehaviors.GetOriginalBehavior(behavior);
            int      num1             = 0;

            while (true)
            {
                if (num1 < itemBehaviors.Count)
                {
                    Behavior item = itemBehaviors[num1];
                    if (item != behavior)
                    {
                        if (item != originalBehavior)
                        {
                            Behavior originalBehavior1 = StylizedBehaviors.GetOriginalBehavior(item);
                            if (originalBehavior1 == behavior)
                            {
                                break;
                            }
                            if (originalBehavior1 != originalBehavior)
                            {
                                num1++;
                                continue;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    num = num1;
                    return(num);
                }
                else
                {
                    return(num);
                }
            }
            num = num1;
            return(num);
        }