コード例 #1
0
ファイル: Style.cs プロジェクト: modulexcite/Avalonia
 internal void Attach(FrameworkElement frameworkElement)
 {
     foreach (Setter setter in this.Setters)
     {
         setter.Attach(frameworkElement);
     }
 }
コード例 #2
0
        public static IEnumerable GetChildren(FrameworkElement current)
        {
            IEnumerator i = current.LogicalChildren;

            while (i.MoveNext())
            {
                yield return i.Current;
            }
        }
コード例 #3
0
ファイル: Trigger.cs プロジェクト: modulexcite/Avalonia
        internal override void Attach(FrameworkElement target, DependencyObject parent)
        {
            DependencyObject source = parent;

            if (this.SourceName != null)
            {
                source = (DependencyObject)target.FindName(this.SourceName);
            }

            this.attached.Add(source, target);

            if (this.CheckCondition(source))
            {
                this.Setters.Attach(target);
                this.applied.Add(target);
            }

            IObservableDependencyObject observable = (IObservableDependencyObject)source;
            observable.AttachPropertyChangedHandler(this.Property.Name, this.ValueChanged);
        }
コード例 #4
0
        private void PropagateTemplatedParent(FrameworkElement element, DependencyObject templatedParent)
        {
            element.TemplatedParent = templatedParent;

            foreach (FrameworkElement child in LogicalTreeHelper.GetChildren(element).OfType<FrameworkElement>())
            {
                child.TemplatedParent = templatedParent;
            }
        }
コード例 #5
0
        private INameScope FindNameScope(FrameworkElement e)
        {
            while (e != null)
            {
                INameScope nameScope = e as INameScope ?? NameScope.GetNameScope(e);

                if (nameScope != null)
                {
                    return nameScope;
                }

                e = LogicalTreeHelper.GetParent(e) as FrameworkElement;
            }

            return null;
        }
コード例 #6
0
ファイル: SetterBase.cs プロジェクト: modulexcite/Avalonia
 internal abstract void Detach(FrameworkElement frameworkElement);
コード例 #7
0
ファイル: Setter.cs プロジェクト: modulexcite/Avalonia
        internal override void Detach(FrameworkElement frameworkElement)
        {
            if (this.TargetName != null)
            {
                frameworkElement = (FrameworkElement)frameworkElement.FindName(this.TargetName);
            }

            frameworkElement.SetValue(this.Property, this.oldValues[frameworkElement]);
            this.oldValues.Remove(frameworkElement);
        }
コード例 #8
0
ファイル: Setter.cs プロジェクト: modulexcite/Avalonia
        internal override void Attach(FrameworkElement frameworkElement)
        {
            object oldValue = DependencyProperty.UnsetValue;

            if (this.TargetName != null)
            {
                frameworkElement = (FrameworkElement)frameworkElement.FindName(this.TargetName);
            }

            if (!frameworkElement.IsUnset(this.Property))
            {
                oldValue = frameworkElement.GetValue(this.Property);
            }

            this.oldValues.Add(frameworkElement, oldValue);

            frameworkElement.SetValue(this.Property, this.ConvertValue(this.Value));
        }