DropShadowEffect.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Effects / DropShadowEffect.cs / 1305600 / DropShadowEffect.cs

                            //------------------------------------------------------------------------------ 
//  Microsoft Avalon
//  Copyright (c) Microsoft Corporation, 2007
//
//  File:       DropShadowEffect.cs 
//-----------------------------------------------------------------------------
 
using System; 
using System.Diagnostics;
using System.Windows; 
using System.Windows.Media;

namespace System.Windows.Media.Effects
{ 

    ///  
    /// DropShadowEffect 
    /// 
    public partial class DropShadowEffect 
    {

        #region Constructors
        ///  
        /// Constructor
        ///  
        public DropShadowEffect() 
        {
 
        }

        #endregion
 
        /// 
        /// Takes in content bounds, and returns the bounds of the rendered 
        /// output of that content after the Effect is applied. 
        /// 
        internal override Rect GetRenderBounds(Rect contentBounds) 
        {
            Point topLeft = new Point();
            Point bottomRight = new Point();
 
            double radius = BlurRadius;
            topLeft.X = contentBounds.TopLeft.X - radius; 
            topLeft.Y = contentBounds.TopLeft.Y - radius; 
            bottomRight.X = contentBounds.BottomRight.X + radius;
            bottomRight.Y = contentBounds.BottomRight.Y + radius; 

            double depth = ShadowDepth;
            double direction = Math.PI/180 * Direction;
            double offsetX = depth * Math.Cos(direction); 
            double offsetY = depth * Math.Sin(direction);
 
            // If the shadow is horizontally aligned or to the right of the original element... 
            if (offsetX >= 0.0f)
            { 
                bottomRight.X += offsetX;
            }
            // If the shadow is to the left of the original element...
            else 
            {
                topLeft.X += offsetX; 
            } 

            // If the shadow is above the original element... 
            if (offsetY >= 0.0f)
            {
                topLeft.Y -= offsetY;
            } 
            // If the shadow is below the original element...
            else 
            { 
                bottomRight.Y -= offsetY;
            } 

            return new Rect(topLeft, bottomRight);
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------ 
//  Microsoft Avalon
//  Copyright (c) Microsoft Corporation, 2007
//
//  File:       DropShadowEffect.cs 
//-----------------------------------------------------------------------------
 
using System; 
using System.Diagnostics;
using System.Windows; 
using System.Windows.Media;

namespace System.Windows.Media.Effects
{ 

    ///  
    /// DropShadowEffect 
    /// 
    public partial class DropShadowEffect 
    {

        #region Constructors
        ///  
        /// Constructor
        ///  
        public DropShadowEffect() 
        {
 
        }

        #endregion
 
        /// 
        /// Takes in content bounds, and returns the bounds of the rendered 
        /// output of that content after the Effect is applied. 
        /// 
        internal override Rect GetRenderBounds(Rect contentBounds) 
        {
            Point topLeft = new Point();
            Point bottomRight = new Point();
 
            double radius = BlurRadius;
            topLeft.X = contentBounds.TopLeft.X - radius; 
            topLeft.Y = contentBounds.TopLeft.Y - radius; 
            bottomRight.X = contentBounds.BottomRight.X + radius;
            bottomRight.Y = contentBounds.BottomRight.Y + radius; 

            double depth = ShadowDepth;
            double direction = Math.PI/180 * Direction;
            double offsetX = depth * Math.Cos(direction); 
            double offsetY = depth * Math.Sin(direction);
 
            // If the shadow is horizontally aligned or to the right of the original element... 
            if (offsetX >= 0.0f)
            { 
                bottomRight.X += offsetX;
            }
            // If the shadow is to the left of the original element...
            else 
            {
                topLeft.X += offsetX; 
            } 

            // If the shadow is above the original element... 
            if (offsetY >= 0.0f)
            {
                topLeft.Y -= offsetY;
            } 
            // If the shadow is below the original element...
            else 
            { 
                bottomRight.Y -= offsetY;
            } 

            return new Rect(topLeft, bottomRight);
        }
    } 
}

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