BlockUIContainer.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / BlockUIContainer.cs / 1305600 / BlockUIContainer.cs

                            //---------------------------------------------------------------------------- 
//
// Copyright (C) Microsoft Corporation.  All rights reserved.
//
// Description: BlockUIContainer - a wrapper for embedded UIElements in text 
//    flow content block collections
// 
//--------------------------------------------------------------------------- 

using System.ComponentModel;        // DesignerSerializationVisibility 
using System.Windows.Markup; // ContentProperty

namespace System.Windows.Documents
{ 
    /// 
    /// BlockUIContainer - a wrapper for embedded UIElements in text 
    /// flow content block collections 
    /// 
    [ContentProperty("Child")] 
    public class BlockUIContainer : Block
    {
        //-------------------------------------------------------------------
        // 
        // Constructors
        // 
        //------------------------------------------------------------------- 

        #region Constructors 

        /// 
        /// Initializes a new instance of BlockUIContainer element.
        ///  
        /// 
        /// The purpose of this element is to be a wrapper for UIElements 
        /// when they are embedded into text flow - as items of 
        /// BlockCollections.
        ///  
        public BlockUIContainer()
            : base()
        {
        } 

        ///  
        /// Initializes an BlockUIContainer specifying its child UIElement 
        /// 
        ///  
        /// UIElement set as a child of this block item
        /// 
        public BlockUIContainer(UIElement uiElement)
            : base() 
        {
            if (uiElement == null) 
            { 
                throw new ArgumentNullException("uiElement");
            } 
            this.Child = uiElement;
        }

        #endregion Constructors 

        //-------------------------------------------------------------------- 
        // 
        // Public Properties
        // 
        //-------------------------------------------------------------------

        #region Properties
 
        /// 
        /// The content spanned by this TextElement. 
        ///  
        public UIElement Child
        { 
            get
            {
                return this.ContentStart.GetAdjacentElement(LogicalDirection.Forward) as UIElement;
            } 

            set 
            { 
                TextContainer textContainer = this.TextContainer;
 
                textContainer.BeginChange();
                try
                {
                    TextPointer contentStart = this.ContentStart; 

                    UIElement child = Child; 
                    if (child != null) 
                    {
                        textContainer.DeleteContentInternal(contentStart, this.ContentEnd); 
                        ContainerTextElementField.ClearValue(child);
                    }

                    if (value != null) 
                    {
                        ContainerTextElementField.SetValue(value, this); 
                        contentStart.InsertUIElement(value); 
                    }
                } 
                finally
                {
                    textContainer.EndChange();
                } 
            }
        } 
 
        #endregion
 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK