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
- ItemCheckEvent.cs
- GetWinFXPath.cs
- StandardBindingReliableSessionElement.cs
- MultiBinding.cs
- EmptyEnumerator.cs
- ObjectAssociationEndMapping.cs
- MetadataSerializer.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- TaskFormBase.cs
- RenderDataDrawingContext.cs
- MenuItem.cs
- HebrewNumber.cs
- ProtocolViolationException.cs
- InputProviderSite.cs
- WebZone.cs
- BindingList.cs
- CustomBinding.cs
- CreatingCookieEventArgs.cs
- Win32Native.cs
- Operators.cs
- ServiceModelActivationSectionGroup.cs
- AudioDeviceOut.cs
- SchemaImporterExtensionsSection.cs
- ToolStripItem.cs
- ResourceExpression.cs
- LinkDescriptor.cs
- TextTreeInsertUndoUnit.cs
- ConsumerConnectionPointCollection.cs
- OciLobLocator.cs
- Utility.cs
- TextMetrics.cs
- WebServiceHost.cs
- MemoryMappedFileSecurity.cs
- ErrorLog.cs
- SqlMultiplexer.cs
- ToolStripItemGlyph.cs
- XmlReflectionImporter.cs
- HttpCacheParams.cs
- SqlClientMetaDataCollectionNames.cs
- RootProfilePropertySettingsCollection.cs
- TextSearch.cs
- Rfc4050KeyFormatter.cs
- TypedTableBaseExtensions.cs
- FileCodeGroup.cs
- SQLStringStorage.cs
- Pair.cs
- SurrogateEncoder.cs
- GlyphRunDrawing.cs
- TextEditorCopyPaste.cs
- FilterEventArgs.cs
- SeverityFilter.cs
- ExtensionWindow.cs
- XsltCompileContext.cs
- WebPartsSection.cs
- WebPartEditorApplyVerb.cs
- NavigationProgressEventArgs.cs
- FrameworkElementAutomationPeer.cs
- DataGridColumnStyleMappingNameEditor.cs
- CodeSnippetCompileUnit.cs
- Section.cs
- WindowsStatic.cs
- ColumnResizeAdorner.cs
- Configuration.cs
- StyleCollection.cs
- DataGridTemplateColumn.cs
- SqlNodeAnnotations.cs
- AstTree.cs
- SqlUtil.cs
- ScriptControl.cs
- Trace.cs
- RC2CryptoServiceProvider.cs
- NativeMethods.cs
- WindowsListViewItem.cs
- XmlSchemaElement.cs
- ResourceDescriptionAttribute.cs
- DataListItem.cs
- ComplexPropertyEntry.cs
- ClassData.cs
- Column.cs
- DrawingDrawingContext.cs
- WebPartHeaderCloseVerb.cs
- TemplateLookupAction.cs
- Certificate.cs
- HashMembershipCondition.cs
- WindowsProgressbar.cs
- DelegatingTypeDescriptionProvider.cs
- FunctionDetailsReader.cs
- ReadOnlyMetadataCollection.cs
- FileDataSource.cs
- DataListCommandEventArgs.cs
- Publisher.cs
- BufferBuilder.cs
- CodeCompileUnit.cs
- InfoCardSymmetricCrypto.cs
- MouseEvent.cs
- SqlExpressionNullability.cs
- DesignerMetadata.cs
- LayeredChannelFactory.cs
- Gdiplus.cs
- XmlStringTable.cs