示例#1
0
        private void SetVisualParent(Visual value)
        {
            if (this.visualParent != value)
            {
                var old     = this.visualParent;
                var oldRoot = this.GetVisualAncestors().OfType <IRenderRoot>().FirstOrDefault();
                var newRoot = default(IRenderRoot);

                if (value != null)
                {
                    newRoot = value.GetSelfAndVisualAncestors().OfType <IRenderRoot>().FirstOrDefault();
                }

                this.visualParent = value;
                this.OnVisualParentChanged(old);

                if (oldRoot != null)
                {
                    this.NotifyDetachedFromVisualTree(oldRoot);
                }

                if (newRoot != null)
                {
                    this.NotifyAttachedToVisualTree(newRoot);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Sets the visual parent of the Visual.
        /// </summary>
        /// <param name="value">The visual parent.</param>
        private void SetVisualParent(Visual value)
        {
            if (_visualParent != value)
            {
                var old     = _visualParent;
                var oldRoot = this.GetVisualAncestors().OfType <IRenderRoot>().FirstOrDefault();
                var newRoot = default(IRenderRoot);

                if (value != null)
                {
                    newRoot = value.GetSelfAndVisualAncestors().OfType <IRenderRoot>().FirstOrDefault();
                }

                _visualParent = value;

                if (oldRoot != null)
                {
                    NotifyDetachedFromVisualTree(oldRoot);
                }

                if (newRoot != null)
                {
                    NotifyAttachedToVisualTree(newRoot);
                }

                RaisePropertyChanged(VisualParentProperty, old, value, BindingPriority.LocalValue);
            }
        }
示例#3
0
文件: Visual.cs 项目: Scellow/Perspex
        /// <summary>
        /// Sets the visual parent of the Visual.
        /// </summary>
        /// <param name="value">The visual parent.</param>
        private void SetVisualParent(Visual value)
        {
            if (this.visualParent != value)
            {
                var old = this.visualParent;
                var oldRoot = this.GetVisualAncestors().OfType<IRenderRoot>().FirstOrDefault();
                var newRoot = default(IRenderRoot);

                if (value != null)
                {
                    newRoot = value.GetSelfAndVisualAncestors().OfType<IRenderRoot>().FirstOrDefault();
                }

                this.visualParent = value;

                if (oldRoot != null)
                {
                    this.NotifyDetachedFromVisualTree(oldRoot);
                }

                if (newRoot != null)
                {
                    this.NotifyAttachedToVisualTree(newRoot);
                }
            }
        }
示例#4
0
        /// <summary>
        /// Sets the visual parent of the Visual.
        /// </summary>
        /// <param name="value">The visual parent.</param>
        private void SetVisualParent(Visual value)
        {
            if (_visualParent != value)
            {
                var old = _visualParent;
                var oldRoot = this.GetVisualAncestors().OfType<IRenderRoot>().FirstOrDefault();
                var newRoot = default(IRenderRoot);

                if (value != null)
                {
                    newRoot = value.GetSelfAndVisualAncestors().OfType<IRenderRoot>().FirstOrDefault();
                }

                _visualParent = value;

                if (oldRoot != null)
                {
                    NotifyDetachedFromVisualTree(oldRoot);
                }

                if (newRoot != null)
                {
                    NotifyAttachedToVisualTree(newRoot);
                }

                RaisePropertyChanged(VisualParentProperty, old, value, BindingPriority.LocalValue);
            }
        }