Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / GeneralTransformGroup.cs / 1 / GeneralTransformGroup.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: GeneralTransformGroup.cs //----------------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Media; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Collections; using System.Collections.Generic; using MS.Internal; using System.Windows.Media.Animation; using System.Globalization; using System.Text; using System.Runtime.InteropServices; using System.Windows.Markup; using System.Windows.Media.Composition; using System.Diagnostics; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { ////// GeneralTrasnform group /// [ContentProperty("Children")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class GeneralTransformGroup : GeneralTransform { #region Constructors ////// Default Constructor /// public GeneralTransformGroup() { } #endregion ////// Transform a point /// /// input point /// output point ///True if the point is transformed successfully public override bool TryTransform(Point inPoint, out Point result) { result = inPoint; if ((Children == null) || (Children.Count == 0)) { return false; } Point inP = inPoint; bool fPointTransformed = true; // transform the point through each of the transforms for (int i = 0; i < Children.Count; i++) { if (Children.Internal_GetItem(i).TryTransform(inPoint, out result) == false) { fPointTransformed = false; } inPoint = result; } return fPointTransformed; } ////// Transforms the bounding box to the smallest axis aligned bounding box /// that contains all the points in the original bounding box /// /// Input bounding rect ///Transformed bounding rect public override Rect TransformBounds(Rect rect) { if ((Children == null) || (Children.Count == 0)) { return rect; } Rect result = rect; for (int i = 0; i < Children.Count; i++) { result = Children.Internal_GetItem(i).TransformBounds(result); } return result; } ////// Returns the inverse transform if it has an inverse, null otherwise /// public override GeneralTransform Inverse { get { ReadPreamble(); if ((Children == null) || (Children.Count == 0)) { return null; } GeneralTransformGroup group = new GeneralTransformGroup(); for (int i = Children.Count - 1; i >= 0; i--) { GeneralTransform g = Children.Internal_GetItem(i).Inverse; // if any of the transforms does not have an inverse, // then the entire group does not have one if (g == null) return null; group.Children.Add(g); } return group; } } ////// Returns a best effort affine transform /// internal override Transform AffineTransform { [FriendAccessAllowed] // Built into Core, also used by Framework. get { if ((Children == null) || (Children.Count == 0)) { return null; } Matrix matrix = Matrix.Identity; foreach (GeneralTransform gt in Children) { Transform t = gt.AffineTransform; if (t != null) { matrix *= t.Value; } } return new MatrixTransform(matrix); } } } } // 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
- ProviderManager.cs
- BaseTemplateBuildProvider.cs
- SafeLibraryHandle.cs
- ParameterModifier.cs
- ConnectionPoint.cs
- CodeSubDirectoriesCollection.cs
- InfoCard.cs
- Normalization.cs
- CounterSampleCalculator.cs
- WebWorkflowRole.cs
- ToolStripAdornerWindowService.cs
- ListViewInsertedEventArgs.cs
- MenuScrollingVisibilityConverter.cs
- TreeChangeInfo.cs
- PageAsyncTaskManager.cs
- ArrayElementGridEntry.cs
- compensatingcollection.cs
- EdmProviderManifest.cs
- BitmapCodecInfoInternal.cs
- DeferredElementTreeState.cs
- ClientTargetSection.cs
- IconHelper.cs
- DayRenderEvent.cs
- ObjectParameterCollection.cs
- EnumConverter.cs
- SendActivity.cs
- LinqDataSourceDeleteEventArgs.cs
- FontFamilyValueSerializer.cs
- ExpressionNode.cs
- GeneralTransform.cs
- SmtpAuthenticationManager.cs
- ColumnMapVisitor.cs
- MaskInputRejectedEventArgs.cs
- PerformanceCounter.cs
- RangeBase.cs
- UnsafeNativeMethods.cs
- WebPartCatalogCloseVerb.cs
- ErrorEventArgs.cs
- ConditionalBranch.cs
- ProfileGroupSettingsCollection.cs
- Button.cs
- recordstatefactory.cs
- DBConnection.cs
- ProtocolsConfiguration.cs
- ToolBarDesigner.cs
- CurrentChangingEventArgs.cs
- Range.cs
- Automation.cs
- XmlC14NWriter.cs
- TypeHelper.cs
- PersonalizableTypeEntry.cs
- WindowsScroll.cs
- SamlAction.cs
- DataRecordInternal.cs
- AttributeEmitter.cs
- Glyph.cs
- DispatcherHooks.cs
- XmlTextReader.cs
- TreeViewAutomationPeer.cs
- ToolboxItem.cs
- FrameworkContentElement.cs
- ProjectionAnalyzer.cs
- HttpConfigurationContext.cs
- SecurityPermission.cs
- UnmanagedMemoryStream.cs
- SqlDataSourceConfigureFilterForm.cs
- MediaScriptCommandRoutedEventArgs.cs
- FormatterServices.cs
- FontDifferentiator.cs
- ConcurrentQueue.cs
- SchemaEntity.cs
- IsolatedStorageFileStream.cs
- OrderByQueryOptionExpression.cs
- Primitive.cs
- ObjectAnimationUsingKeyFrames.cs
- SoapParser.cs
- HwndStylusInputProvider.cs
- LongAverageAggregationOperator.cs
- PageContent.cs
- QilStrConcatenator.cs
- LocalFileSettingsProvider.cs
- GlobalProxySelection.cs
- UrlMappingCollection.cs
- TextLineResult.cs
- ListView.cs
- WhitespaceRuleLookup.cs
- OneOfTypeConst.cs
- ShaderRenderModeValidation.cs
- PathParser.cs
- EditorAttribute.cs
- RoleManagerEventArgs.cs
- ValidatingReaderNodeData.cs
- EntitySetBaseCollection.cs
- XmlNode.cs
- SymbolMethod.cs
- NativeRightsManagementAPIsStructures.cs
- CodeCatchClauseCollection.cs
- DesignerSerializationOptionsAttribute.cs
- ToolStripItemRenderEventArgs.cs
- ColumnMapCopier.cs