Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / Effects / BitmapEffectGeneralTransform.cs / 1 / BitmapEffectGeneralTransform.cs
/****************************************************************************\ * * File: BitmapEffectGeneralTransform.cs * * Description: * BitmapEffectGeneralTransform.cs defines the "BitmapEffectGeneralTransform" object * * Copyright (C) 2002 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using MS.Internal; using System; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Diagnostics; using System.Globalization; using System.Reflection; using System.Runtime.InteropServices; using System.Security; using System.Security.Permissions; using System.Windows; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using System.Windows.Markup; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Effects { ////// This is a general transform wrapper for a bitmap effect /// internal partial class BitmapEffectGeneralTransform : GeneralTransform { private bool _fInverse = false; private Rect _visualBounds = Rect.Empty; ////// Constructor /// public BitmapEffectGeneralTransform() { } ////// Constructor /// /// bitmap effect /// bitmap effect input /// Inverse transform /// The bounds of the visual for public BitmapEffectGeneralTransform(BitmapEffect effect, BitmapEffectInput input, bool fInverse, Rect visualBounds) { if (effect == null) throw new InvalidOperationException(SR.Get(SRID.Transform_No_Effect, null)); this.BitmapEffect = effect.Clone(); this.BitmapEffectInput = (input != null) ? input.Clone() : new BitmapEffectInput(); _fInverse = fInverse; _visualBounds = visualBounds; } ////// Returns true if the transform is an inverse /// internal bool IsInverse { get { return _fInverse; } set { _fInverse = value; } } ////// Implementation of /// protected override void CloneCore(Freezable sourceFreezable) { BitmapEffectGeneralTransform transform = (BitmapEffectGeneralTransform)sourceFreezable; base.CloneCore(sourceFreezable); CopyCommon(transform); } ///Freezable.CloneCore . ////// Implementation of /// protected override void CloneCurrentValueCore(Freezable sourceFreezable) { BitmapEffectGeneralTransform transform = (BitmapEffectGeneralTransform)sourceFreezable; base.CloneCurrentValueCore(sourceFreezable); CopyCommon(transform); } ///Freezable.CloneCurrentValueCore . ////// Implementation of /// protected override void GetAsFrozenCore(Freezable sourceFreezable) { BitmapEffectGeneralTransform transform = (BitmapEffectGeneralTransform)sourceFreezable; base.GetAsFrozenCore(sourceFreezable); CopyCommon(transform); } ///Freezable.GetAsFrozenCore . ////// Implementation of /// protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { BitmapEffectGeneralTransform transform = (BitmapEffectGeneralTransform)sourceFreezable; base.GetCurrentValueAsFrozenCore(sourceFreezable); CopyCommon(transform); } ///Freezable.GetCurrentValueAsFrozenCore . ////// Transforms a point /// /// input point /// output point ///false if the point cannot be transformed public override bool TryTransform(Point inPoint, out Point result) { if (BitmapEffect == null) throw new InvalidOperationException(SR.Get(SRID.Transform_No_Effect, null)); if (BitmapEffectInput == null) throw new InvalidOperationException(SR.Get(SRID.Transform_No_Effect_Input, null)); BitmapEffect.VisualBounds = _visualBounds; return BitmapEffect.TransformPoint(BitmapEffectInput, inPoint, out result, _fInverse); } ////// Transform the rect bounds into the smallest axis alligned bounding box that /// contains all the point in the original bounds. /// /// ///public override Rect TransformBounds(Rect rect) { if (BitmapEffect == null) throw new InvalidOperationException(SR.Get(SRID.Transform_No_Effect, null)); if (BitmapEffectInput == null) throw new InvalidOperationException(SR.Get(SRID.Transform_No_Effect_Input, null)); return BitmapEffect.TransformRect(BitmapEffectInput, rect, _fInverse); } /// /// Returns the inverse transform if there is one, null otherwise /// public override GeneralTransform Inverse { get { ReadPreamble(); if (!BitmapEffect.IsInverseTransform) return null; BitmapEffectGeneralTransform inverse = Clone(); inverse.IsInverse = !_fInverse; return inverse; } } ////// Returns a best effort affine transform /// internal override Transform AffineTransform { [FriendAccessAllowed] // Built into Core, also used by Framework. get { return null; } } ////// Clones values that do not have corresponding DPs /// /// private void CopyCommon(BitmapEffectGeneralTransform transform) { _fInverse = transform._fInverse; _visualBounds = transform._visualBounds; } } } // 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
- ToolStripStatusLabel.cs
- DataFieldCollectionEditor.cs
- Aes.cs
- AssemblyResourceLoader.cs
- EventLogger.cs
- InfiniteIntConverter.cs
- CacheModeConverter.cs
- DesignerDataColumn.cs
- DesignerRegion.cs
- CodeSnippetTypeMember.cs
- GroupBox.cs
- RemoveFromCollection.cs
- SqlRemoveConstantOrderBy.cs
- ConfigXmlDocument.cs
- TogglePattern.cs
- RightsManagementInformation.cs
- CompensatableTransactionScopeActivity.cs
- SqlProviderServices.cs
- BinaryReader.cs
- XsdCachingReader.cs
- TreeNodeSelectionProcessor.cs
- ConnectionOrientedTransportElement.cs
- ProcessModelSection.cs
- VBCodeProvider.cs
- UnsafeNativeMethods.cs
- AmbientValueAttribute.cs
- UniqueEventHelper.cs
- MD5.cs
- InplaceBitmapMetadataWriter.cs
- EdgeProfileValidation.cs
- EntityDataSource.cs
- HttpPostedFile.cs
- RelatedImageListAttribute.cs
- IndexExpression.cs
- AdornerHitTestResult.cs
- GenerateScriptTypeAttribute.cs
- ValueUtilsSmi.cs
- ProcessModule.cs
- Point3DAnimationBase.cs
- TouchesOverProperty.cs
- RemotingHelper.cs
- ImageCodecInfo.cs
- ImportedNamespaceContextItem.cs
- InputScope.cs
- UrlMappingCollection.cs
- XmlNodeList.cs
- XmlDictionaryWriter.cs
- DispatcherTimer.cs
- SystemWebCachingSectionGroup.cs
- TableCell.cs
- MinMaxParagraphWidth.cs
- FileDialogCustomPlaces.cs
- ScrollContentPresenter.cs
- ClientRuntime.cs
- MailSettingsSection.cs
- AttachmentCollection.cs
- ConnectionConsumerAttribute.cs
- CustomPopupPlacement.cs
- InfoCardServiceInstallComponent.cs
- InputGestureCollection.cs
- CodeObjectCreateExpression.cs
- WindowsRebar.cs
- RoleGroupCollection.cs
- OleDbEnumerator.cs
- UIElementParaClient.cs
- TypeSystem.cs
- CallTemplateAction.cs
- XPathAxisIterator.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- PersonalizationProviderHelper.cs
- EventRecordWrittenEventArgs.cs
- ExecutionScope.cs
- KeyFrames.cs
- DbConnectionStringCommon.cs
- ComponentGlyph.cs
- Enum.cs
- ToolStripDesignerAvailabilityAttribute.cs
- DataViewManagerListItemTypeDescriptor.cs
- SqlNotificationEventArgs.cs
- CommonGetThemePartSize.cs
- MouseGestureConverter.cs
- MetadataCache.cs
- ContentHostHelper.cs
- odbcmetadatacollectionnames.cs
- ColorConvertedBitmap.cs
- EntityDataSourceMemberPath.cs
- PropertyIDSet.cs
- Int32Converter.cs
- ContainerSelectorBehavior.cs
- SessionEndingCancelEventArgs.cs
- FirewallWrapper.cs
- Int32CAMarshaler.cs
- isolationinterop.cs
- ChangesetResponse.cs
- ConsoleTraceListener.cs
- XPathNavigatorReader.cs
- SingleConverter.cs
- RowType.cs
- CSharpCodeProvider.cs
- AssociationTypeEmitter.cs