Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // 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
- _BufferOffsetSize.cs
- BitmapEffectDrawing.cs
- VirtualPath.cs
- Win32MouseDevice.cs
- PolyQuadraticBezierSegment.cs
- FillBehavior.cs
- StringToken.cs
- SoapIgnoreAttribute.cs
- XPathPatternBuilder.cs
- CompilationUnit.cs
- ObjectListComponentEditor.cs
- FontCacheUtil.cs
- TransportContext.cs
- RepeaterCommandEventArgs.cs
- infer.cs
- SystemIPv6InterfaceProperties.cs
- ConsoleCancelEventArgs.cs
- Schema.cs
- _AutoWebProxyScriptEngine.cs
- SecureEnvironment.cs
- DataGridViewRowPostPaintEventArgs.cs
- WsatConfiguration.cs
- XmlSchemaFacet.cs
- TextRunTypographyProperties.cs
- Lease.cs
- SqlTriggerAttribute.cs
- ParameterInfo.cs
- GridViewDeleteEventArgs.cs
- Splitter.cs
- UTF32Encoding.cs
- Misc.cs
- MetadataItemEmitter.cs
- mda.cs
- PublisherIdentityPermission.cs
- AmbiguousMatchException.cs
- DataSourceControlBuilder.cs
- UndirectedGraph.cs
- DebugController.cs
- NamespaceDecl.cs
- PhonemeConverter.cs
- XmlMembersMapping.cs
- SignatureHelper.cs
- CodeAttributeArgumentCollection.cs
- EventHandlersDesigner.cs
- BatchParser.cs
- PatternMatchRules.cs
- __Filters.cs
- OdbcConnectionString.cs
- SystemWebSectionGroup.cs
- PropertyValue.cs
- UidManager.cs
- BindingMAnagerBase.cs
- Int32Storage.cs
- QueryStack.cs
- XmlQueryContext.cs
- ElementAtQueryOperator.cs
- SerialReceived.cs
- CqlIdentifiers.cs
- ArrayTypeMismatchException.cs
- ImageCodecInfo.cs
- COM2EnumConverter.cs
- CompModHelpers.cs
- ClientConfigurationHost.cs
- KerberosReceiverSecurityToken.cs
- EntityDataSourceChangedEventArgs.cs
- OledbConnectionStringbuilder.cs
- DNS.cs
- WorkflowView.cs
- WinCategoryAttribute.cs
- ListViewEditEventArgs.cs
- SecUtil.cs
- Psha1DerivedKeyGenerator.cs
- LocatorPart.cs
- Geometry3D.cs
- LessThan.cs
- DataRowExtensions.cs
- ControlBuilderAttribute.cs
- WpfKnownMember.cs
- HealthMonitoringSectionHelper.cs
- DrawItemEvent.cs
- PackWebRequest.cs
- ViewLoader.cs
- DataGridViewTextBoxEditingControl.cs
- RemotingSurrogateSelector.cs
- EventDriven.cs
- EventLogger.cs
- HostingPreferredMapPath.cs
- QilLiteral.cs
- BaseValidator.cs
- PolicyManager.cs
- TcpActivation.cs
- TransactionFilter.cs
- SymbolMethod.cs
- TextAdaptor.cs
- EntityKeyElement.cs
- TdsParserStaticMethods.cs
- ListView.cs
- DrawingBrush.cs
- ResourcePool.cs
- Speller.cs