Floater.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 / Floater.cs / 1305600 / Floater.cs

                            //---------------------------------------------------------------------------- 
//
// Copyright (C) Microsoft Corporation.  All rights reserved.
//
// Description: Floater element. 
//
//--------------------------------------------------------------------------- 
 
using System.ComponentModel;
using MS.Internal; 
using MS.Internal.PtsHost.UnsafeNativeMethods;      // PTS restrictions

namespace System.Windows.Documents
{ 
    /// 
    /// Floater element 
    ///  
    public class Floater : AnchoredBlock
    { 
        //-------------------------------------------------------------------
        //
        // Constructors
        // 
        //-------------------------------------------------------------------
 
        #region Constructors 

        ///  
        /// Static ctor.  Initializes property metadata.
        /// 
        static Floater()
        { 
            DefaultStyleKeyProperty.OverrideMetadata(typeof(Floater), new FrameworkPropertyMetadata(typeof(Floater)));
        } 
 
        /// 
        /// Initialized the new instance of a Floater 
        /// 
        public Floater() : this(null, null)
        {
        } 

        ///  
        /// Initialized the new instance of a Floater specifying a Block added 
        /// to a Floater as its first child.
        ///  
        /// 
        /// Block added as a first initial child of the Floater.
        /// 
        public Floater(Block childBlock) : this(childBlock, null) 
        {
        } 
 
        /// 
        /// Creates a new Floater instance. 
        /// 
        /// 
        /// Optional child of the new Floater, may be null.
        ///  
        /// 
        /// Optional position at which to insert the new Floater. May 
        /// be null. 
        /// 
        public Floater(Block childBlock, TextPointer insertionPosition) : base(childBlock, insertionPosition) 
        {
        }

        #endregion Constructors 

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

        #region Public Properties
 
        /// 
        /// DependencyProperty for  property. 
        ///  
        public static readonly DependencyProperty HorizontalAlignmentProperty =
                FrameworkElement.HorizontalAlignmentProperty.AddOwner( 
                        typeof(Floater),
                        new FrameworkPropertyMetadata(
                                HorizontalAlignment.Stretch,
                                FrameworkPropertyMetadataOptions.AffectsMeasure)); 

        ///  
        /// 
        /// 
        public HorizontalAlignment HorizontalAlignment 
        {
            get { return (HorizontalAlignment)GetValue(HorizontalAlignmentProperty); }
            set { SetValue(HorizontalAlignmentProperty, value); }
        } 

        ///  
        /// DependencyProperty for  property. 
        /// 
        public static readonly DependencyProperty WidthProperty = 
                DependencyProperty.Register(
                        "Width",
                        typeof(double),
                        typeof(Floater), 
                        new FrameworkPropertyMetadata(
                                Double.NaN, 
                                FrameworkPropertyMetadataOptions.AffectsMeasure), 
                        new ValidateValueCallback(IsValidWidth));
 
        /// 
        /// The Width property specifies the width of the element.
        /// 
        [TypeConverter(typeof(LengthConverter))] 
        public double Width
        { 
            get { return (double)GetValue(WidthProperty); } 
            set { SetValue(WidthProperty, value); }
        } 

        #endregion Public Properties

        //-------------------------------------------------------------------- 
        //
        // Private Methods 
        // 
        //--------------------------------------------------------------------
 
        #region Private Methods

        private static bool IsValidWidth(object o)
        { 
            double width = (double)o;
            double maxWidth = Math.Min(1000000, PTS.MaxPageSize); 
            if (Double.IsNaN(width)) 
            {
                // Default value of width is NaN 
                return true;
            }
            if (width < 0 || width > maxWidth)
            { 
                return false;
            } 
            return true; 
        }
 
        #endregion Private Methods

    }
} 

// 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