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
- FixedTextSelectionProcessor.cs
- ProxyWebPart.cs
- RuleSettingsCollection.cs
- HtmlTitle.cs
- DefaultObjectSerializer.cs
- WebEventTraceProvider.cs
- ReadOnlyHierarchicalDataSource.cs
- TextLineBreak.cs
- SatelliteContractVersionAttribute.cs
- Convert.cs
- PointConverter.cs
- MachineKeySection.cs
- XmlCharacterData.cs
- HttpResponse.cs
- XmlWriterTraceListener.cs
- TreeNodeCollectionEditor.cs
- AxisAngleRotation3D.cs
- DatePickerTextBox.cs
- cookiecollection.cs
- DBSchemaTable.cs
- TextContainer.cs
- CatalogPartChrome.cs
- TripleDES.cs
- BaseComponentEditor.cs
- GeometryCombineModeValidation.cs
- WindowsStartMenu.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- ConfigXmlWhitespace.cs
- SystemWebSectionGroup.cs
- NullableConverter.cs
- FullTextBreakpoint.cs
- ObjectRef.cs
- SocketInformation.cs
- WhitespaceRuleLookup.cs
- ErrorFormatterPage.cs
- BitmapEffectGroup.cs
- DataRecordObjectView.cs
- ContextMenuStrip.cs
- SimpleLine.cs
- VisualBrush.cs
- PanelDesigner.cs
- InheritablePropertyChangeInfo.cs
- GroupItemAutomationPeer.cs
- Simplifier.cs
- DeleteStoreRequest.cs
- LoginCancelEventArgs.cs
- TraceUtils.cs
- CacheOutputQuery.cs
- CompressedStack.cs
- CallId.cs
- SqlHelper.cs
- ActivationServices.cs
- PtsPage.cs
- KnownBoxes.cs
- BasicViewGenerator.cs
- indexingfiltermarshaler.cs
- PrintDialog.cs
- WorkItem.cs
- BooleanExpr.cs
- ResXBuildProvider.cs
- TextSelectionHighlightLayer.cs
- ConstructorNeedsTagAttribute.cs
- ProcessInfo.cs
- WebBaseEventKeyComparer.cs
- DesignerView.xaml.cs
- MatrixAnimationBase.cs
- hresults.cs
- SystemColors.cs
- ToolBar.cs
- NavigationCommands.cs
- AnimatedTypeHelpers.cs
- Image.cs
- ListViewUpdateEventArgs.cs
- ArraySortHelper.cs
- DiscoveryDocumentSerializer.cs
- WebPartEditorCancelVerb.cs
- BaseTemplateCodeDomTreeGenerator.cs
- AccessedThroughPropertyAttribute.cs
- Timer.cs
- TraceSection.cs
- XmlSchemaParticle.cs
- XmlSchemaAnnotated.cs
- ProcessInfo.cs
- RemotingConfiguration.cs
- Win32Exception.cs
- SmiContextFactory.cs
- StorageConditionPropertyMapping.cs
- ProgressiveCrcCalculatingStream.cs
- VerificationAttribute.cs
- AddingNewEventArgs.cs
- HTMLTagNameToTypeMapper.cs
- CheckedListBox.cs
- OciLobLocator.cs
- Stack.cs
- KeyGesture.cs
- MetadataItem_Static.cs
- SafeRightsManagementSessionHandle.cs
- PropertyGroupDescription.cs
- WebPartConnection.cs
- BlurBitmapEffect.cs