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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CannotUnloadAppDomainException.cs
- PrimitiveSchema.cs
- HashHelpers.cs
- StorageInfo.cs
- BufferAllocator.cs
- DefaultTextStore.cs
- BidOverLoads.cs
- AddInActivator.cs
- Cursor.cs
- Menu.cs
- Models.cs
- TripleDES.cs
- CorrelationTokenTypeConvertor.cs
- XmlReader.cs
- LinkConverter.cs
- ConfigurationManager.cs
- _Events.cs
- KeyInstance.cs
- ClientClassGenerator.cs
- Mouse.cs
- ExpressionWriter.cs
- ObjectCacheHost.cs
- ByteStreamGeometryContext.cs
- XmlAttributeProperties.cs
- unitconverter.cs
- KeySplineConverter.cs
- HttpCacheParams.cs
- WebEvents.cs
- cryptoapiTransform.cs
- WebPartAddingEventArgs.cs
- XmlNamespaceMapping.cs
- X509ThumbprintKeyIdentifierClause.cs
- ClockGroup.cs
- WorkflowEnvironment.cs
- login.cs
- WebProxyScriptElement.cs
- TargetParameterCountException.cs
- ImageBrush.cs
- InvokeSchedule.cs
- UIElementAutomationPeer.cs
- RichTextBox.cs
- PermissionSet.cs
- WebConfigurationHostFileChange.cs
- Page.cs
- MemberDescriptor.cs
- RepeaterItem.cs
- ZipArchive.cs
- ToolStripMenuItemDesigner.cs
- ObsoleteAttribute.cs
- SqlWriter.cs
- LogWriteRestartAreaState.cs
- SHA256.cs
- ProfilePropertySettingsCollection.cs
- UriParserTemplates.cs
- SafeWaitHandle.cs
- PropertyValidationContext.cs
- RangeBaseAutomationPeer.cs
- SqlGenericUtil.cs
- CachedPathData.cs
- configsystem.cs
- DateTimePickerDesigner.cs
- Object.cs
- HashCoreRequest.cs
- WinEventQueueItem.cs
- LookupNode.cs
- ImageInfo.cs
- EffectiveValueEntry.cs
- DayRenderEvent.cs
- GradientStopCollection.cs
- DistributedTransactionPermission.cs
- WindowsContainer.cs
- PlatformCulture.cs
- DesignerActionList.cs
- ListBoxItemWrapperAutomationPeer.cs
- XmlQualifiedNameTest.cs
- PrintController.cs
- DataRowExtensions.cs
- AppDomainCompilerProxy.cs
- UIElementParaClient.cs
- DbParameterCollectionHelper.cs
- WhitespaceRuleReader.cs
- Processor.cs
- SqlTopReducer.cs
- XmlAnyElementAttribute.cs
- processwaithandle.cs
- ReadWriteSpinLock.cs
- CaseInsensitiveComparer.cs
- HealthMonitoringSection.cs
- MarkedHighlightComponent.cs
- SortQuery.cs
- InternalBase.cs
- XmlNotation.cs
- NullRuntimeConfig.cs
- StoragePropertyMapping.cs
- ControlBuilderAttribute.cs
- RtfToXamlReader.cs
- StreamReader.cs
- StringComparer.cs
- SimpleFieldTemplateFactory.cs
- TextTreeInsertElementUndoUnit.cs