Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Effects / DropShadowBitmapEffect.cs / 1407647 / DropShadowBitmapEffect.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2005 // // File: BitmapEffectDropShadow.cs //----------------------------------------------------------------------------- #region Using directives using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; using System.Security; using SecurityHelper=MS.Internal.SecurityHelper; #endregion namespace System.Windows.Media.Effects { ////// The class definition for DropShadowBitmapEffect /// public partial class DropShadowBitmapEffect { ////// Constructor /// public DropShadowBitmapEffect() { } ////// Creates the unmanaged effect handle /// ////// Critical - returns a security critical type SafeHandle. /// Safe - Always returns null. /// [SecuritySafeCritical] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] unsafe protected override SafeHandle CreateUnmanagedEffect() { return null; } ////// /// Update (propagetes) properties to the unmanaged effect /// ////// This method demands permission because effects should not be run /// in partial trust. /// /// SecurityCritical - because SetValue has a link demand /// SecutiryTreatAsSafe - because it demans UIWindow permission /// [SecurityCritical, SecurityTreatAsSafe] [Obsolete(MS.Internal.Media.VisualTreeUtils.BitmapEffectObsoleteMessage)] protected override void UpdateUnmanagedPropertyState(SafeHandle unmanagedEffect) { SecurityHelper.DemandUIWindowPermission(); } ////// An ImageEffect can be used to emulate a DropShadowBitmapEffect with certain restrictions. This /// method returns true when it is possible to emulate the DropShadowBitmapEffect using an ImageEffect. /// internal override bool CanBeEmulatedUsingEffectPipeline() { return (Noise == 0.0); } ////// Returns a ImageEffect that emulates this DropShadowBitmapEffect. /// internal override Effect GetEmulatingEffect() { if (_imageEffectEmulation != null && _imageEffectEmulation.IsFrozen) { return _imageEffectEmulation; } if (_imageEffectEmulation == null) { _imageEffectEmulation = new DropShadowEffect(); } Color color = Color; if (_imageEffectEmulation.Color != color) { _imageEffectEmulation.Color = color; } // The limits on ShadowDepth preserve existing behavior. // A scale transform can scale the shadow depth to exceed 50.0, // and this behavior is also handled correctly in the unmanaged layer. double shadowDepth = ShadowDepth; if (_imageEffectEmulation.ShadowDepth != shadowDepth) { if (shadowDepth >= 50.0) { _imageEffectEmulation.ShadowDepth = 50.0; } else if (shadowDepth < 0.0) { _imageEffectEmulation.ShadowDepth = 0.0; } else { _imageEffectEmulation.ShadowDepth = shadowDepth; } } double direction = Direction; if (_imageEffectEmulation.Direction != direction) { _imageEffectEmulation.Direction = direction; } double opacity = Opacity; if (_imageEffectEmulation.Opacity != opacity) { if (opacity >= 1.0) { _imageEffectEmulation.Opacity = 1.0; } else if (opacity <= 0.0) { _imageEffectEmulation.Opacity = 0.0; } else { _imageEffectEmulation.Opacity = opacity; } } double softness = Softness; if (_imageEffectEmulation.BlurRadius / _MAX_EMULATED_BLUR_RADIUS != softness) { if (softness >= 1.0) { _imageEffectEmulation.BlurRadius = _MAX_EMULATED_BLUR_RADIUS; } else if (softness <= 0.0) { _imageEffectEmulation.BlurRadius = 0.0; } else { _imageEffectEmulation.BlurRadius = _MAX_EMULATED_BLUR_RADIUS * softness; } } _imageEffectEmulation.RenderingBias = RenderingBias.Performance; if (this.IsFrozen) { _imageEffectEmulation.Freeze(); } return _imageEffectEmulation; } DropShadowEffect _imageEffectEmulation; private const double _MAX_EMULATED_BLUR_RADIUS = 25.0; } } // 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
- Point.cs
- LinqDataSourceHelper.cs
- ImageFormat.cs
- FramingEncoders.cs
- Light.cs
- MissingMethodException.cs
- DrawingGroupDrawingContext.cs
- bidPrivateBase.cs
- LocatorManager.cs
- XmlSchemaValidationException.cs
- AssociationType.cs
- HtmlFormWrapper.cs
- ArglessEventHandlerProxy.cs
- ScanQueryOperator.cs
- ComNativeDescriptor.cs
- BitmapInitialize.cs
- FixedSOMTextRun.cs
- WinEventQueueItem.cs
- GridViewSortEventArgs.cs
- Query.cs
- HostedElements.cs
- Authorization.cs
- RegionIterator.cs
- Privilege.cs
- AsymmetricSignatureFormatter.cs
- linebase.cs
- UnauthorizedAccessException.cs
- CodeIndexerExpression.cs
- GridViewColumnCollection.cs
- DataGridLinkButton.cs
- FilteredXmlReader.cs
- FileDialog_Vista.cs
- MetafileHeaderWmf.cs
- ClientTargetSection.cs
- PropertyValueUIItem.cs
- ArraySubsetEnumerator.cs
- QilParameter.cs
- RelationshipDetailsRow.cs
- PathFigureCollectionConverter.cs
- ResourceExpression.cs
- AnnotationObservableCollection.cs
- ScopeCollection.cs
- Models.cs
- UInt32Storage.cs
- DataGrid.cs
- CultureTableRecord.cs
- JsonFormatMapping.cs
- ToolStripPanelRenderEventArgs.cs
- MatrixTransform3D.cs
- ValidationSettings.cs
- SessionSwitchEventArgs.cs
- TextOnlyOutput.cs
- TaskFileService.cs
- Int16AnimationBase.cs
- SignatureToken.cs
- TabPanel.cs
- ToolStripSystemRenderer.cs
- ObjectNotFoundException.cs
- DefaultValueAttribute.cs
- FormViewPageEventArgs.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- SqlInfoMessageEvent.cs
- _LocalDataStore.cs
- Size3DConverter.cs
- EventMappingSettings.cs
- RealizationContext.cs
- DataGridViewRowCollection.cs
- FieldMetadata.cs
- XmlSchemaSimpleContent.cs
- DataObjectEventArgs.cs
- ConcurrentBag.cs
- ExternalCalls.cs
- TextTreeFixupNode.cs
- ProfileBuildProvider.cs
- ConsoleTraceListener.cs
- Queue.cs
- RotateTransform.cs
- CatalogPartChrome.cs
- DataMemberFieldEditor.cs
- ResourceKey.cs
- WebPartUserCapability.cs
- TreeViewBindingsEditor.cs
- OleDbFactory.cs
- SchemaObjectWriter.cs
- Site.cs
- NullReferenceException.cs
- AspCompat.cs
- _NTAuthentication.cs
- DocumentScope.cs
- Mapping.cs
- ObjectMaterializedEventArgs.cs
- DataSetUtil.cs
- NativeActivityTransactionContext.cs
- Vector3dCollection.cs
- OuterGlowBitmapEffect.cs
- RelationshipConverter.cs
- ADMembershipUser.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- SafeRightsManagementEnvironmentHandle.cs
- InvalidPrinterException.cs