Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / FixedSOMElement.cs / 1 / FixedSOMElement.cs
/*++ File: FixedSOMElement.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: Abstract class that provides a common base class for all non-container semantic elements. These elements have a fixed node and start and end symbol indices associated with them. History: 05/17/2005: [....] - Created --*/ namespace System.Windows.Documents { using System.Collections.Generic; using System.Diagnostics; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Controls; internal abstract class FixedSOMElement : FixedSOMSemanticBox { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors protected FixedSOMElement(FixedNode fixedNode, int startIndex, int endIndex, GeneralTransform transform) { _fixedNode = fixedNode; _startIndex = startIndex; _endIndex = endIndex; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } protected FixedSOMElement(FixedNode fixedNode, GeneralTransform transform) { _fixedNode = fixedNode; Transform trans = transform.AffineTransform; if (trans != null) { _mat = trans.Value; } else { _mat = Transform.Identity.Value; } } #endregion Constructors //------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Static methods public static FixedSOMElement CreateFixedSOMElement(FixedPage page, UIElement uiElement, FixedNode fixedNode, int startIndex, int endIndex) { FixedSOMElement element = null; if (uiElement is Glyphs) { Glyphs glyphs = uiElement as Glyphs; if (glyphs.UnicodeString.Length > 0) { GlyphRun glyphRun = glyphs.ToGlyphRun(); Rect alignmentBox = glyphRun.ComputeAlignmentBox(); alignmentBox.Offset(glyphs.OriginX, glyphs.OriginY); GeneralTransform transform = glyphs.TransformToAncestor(page); if (startIndex < 0) { startIndex = 0; } if (endIndex < 0) { endIndex = glyphRun.Characters == null ? 0 : glyphRun.Characters.Count; } element = FixedSOMTextRun.Create(alignmentBox, transform, glyphs, fixedNode, startIndex, endIndex, false); } } else if (uiElement is Image) { element = FixedSOMImage.Create(page, uiElement as Image, fixedNode); } else if (uiElement is Path) { element = FixedSOMImage.Create(page, uiElement as Path, fixedNode); } return element; } #endregion Static methods //-------------------------------------------------------------------- // // Public Properties // //--------------------------------------------------------------------- #region Public Properties public FixedNode FixedNode { get { return _fixedNode; } } public int StartIndex { get { return _startIndex; } } public int EndIndex { get { return _endIndex; } } #endregion Public Properties //-------------------------------------------------------------------- // // Internal Properties // //---------------------------------------------------------------------- #region Internal Properties internal FlowNode FlowNode { get { return _flowNode; } set { _flowNode = value; } } internal int OffsetInFlowNode { get { return _offsetInFlowNode; } set { _offsetInFlowNode = value; } } internal Matrix Matrix { get { return _mat; } } #endregion Internal Properties //------------------------------------------------------------------- // // Protected Fields // //---------------------------------------------------------------------- #region Protected Fields protected FixedNode _fixedNode ; protected int _startIndex; protected int _endIndex; protected Matrix _mat; #endregion Protected Fields #region Private Fields private FlowNode _flowNode; private int _offsetInFlowNode; #endregion Private Fields } } // 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
- Pkcs7Recipient.cs
- InputLanguageSource.cs
- VScrollProperties.cs
- DataGridTable.cs
- BindingOperations.cs
- SafeLibraryHandle.cs
- SpotLight.cs
- WorkflowRuntimeServiceElement.cs
- Rotation3DAnimation.cs
- CFGGrammar.cs
- DocumentReference.cs
- TextEditorDragDrop.cs
- ProcessHostServerConfig.cs
- CharEntityEncoderFallback.cs
- _SSPIWrapper.cs
- IsolatedStoragePermission.cs
- ThrowHelper.cs
- CollectionViewGroupRoot.cs
- DocumentSequenceHighlightLayer.cs
- storepermission.cs
- ArrangedElementCollection.cs
- SetStoryboardSpeedRatio.cs
- XPathParser.cs
- GlyphsSerializer.cs
- Deflater.cs
- EntityContainerAssociationSet.cs
- SqlDataSourceConnectionPanel.cs
- EventListenerClientSide.cs
- HostingEnvironmentException.cs
- XhtmlBasicLiteralTextAdapter.cs
- EntityDataSourceWrapperCollection.cs
- SQLBinaryStorage.cs
- ListViewHitTestInfo.cs
- WebReferenceOptions.cs
- DictionaryBase.cs
- TemplatedMailWebEventProvider.cs
- HyperLinkColumn.cs
- NumericPagerField.cs
- KeyboardNavigation.cs
- DataGridViewRowStateChangedEventArgs.cs
- ClientEventManager.cs
- ComponentCollection.cs
- AdapterDictionary.cs
- NotSupportedException.cs
- ObjectContextServiceProvider.cs
- NamedPipeHostedTransportConfiguration.cs
- MultiTrigger.cs
- _DisconnectOverlappedAsyncResult.cs
- XmlSerializableReader.cs
- XmlSerializerVersionAttribute.cs
- EnterpriseServicesHelper.cs
- Rotation3D.cs
- NotifyParentPropertyAttribute.cs
- DataViewManagerListItemTypeDescriptor.cs
- CompositeDispatchFormatter.cs
- Menu.cs
- UdpSocketReceiveManager.cs
- VersionConverter.cs
- SystemNetworkInterface.cs
- FontFamily.cs
- entitydatasourceentitysetnameconverter.cs
- DoubleAnimationClockResource.cs
- StrongNameMembershipCondition.cs
- RtfToken.cs
- AuthorizationSection.cs
- DefaultCommandConverter.cs
- StandardOleMarshalObject.cs
- Style.cs
- FilteredSchemaElementLookUpTable.cs
- ApplicationSecurityInfo.cs
- WebPartCollection.cs
- ColorContextHelper.cs
- httpserverutility.cs
- CriticalFinalizerObject.cs
- XmlSerializerVersionAttribute.cs
- ErrorWebPart.cs
- InternalReceiveMessage.cs
- CustomErrorsSectionWrapper.cs
- FontInfo.cs
- ViewDesigner.cs
- TextModifierScope.cs
- EmissiveMaterial.cs
- BaseTemplateParser.cs
- SeverityFilter.cs
- DesignTimeTemplateParser.cs
- XmlReader.cs
- AutomationElement.cs
- Exceptions.cs
- TimersDescriptionAttribute.cs
- CompilerGeneratedAttribute.cs
- SignatureToken.cs
- TextTreeTextBlock.cs
- LayoutEvent.cs
- OneToOneMappingSerializer.cs
- Resources.Designer.cs
- TreeWalkHelper.cs
- DataMemberAttribute.cs
- TextBox.cs
- PageFunction.cs
- HandoffBehavior.cs