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
- TemporaryBitmapFile.cs
- DoubleCollectionValueSerializer.cs
- PassportAuthentication.cs
- TimeSpanConverter.cs
- SubMenuStyleCollection.cs
- ProfilePropertyNameValidator.cs
- LogicalExpr.cs
- _SSPIWrapper.cs
- PropertyGridView.cs
- FocusTracker.cs
- ListViewInsertEventArgs.cs
- TrackBarRenderer.cs
- VerbConverter.cs
- PropertiesTab.cs
- InfoCardSymmetricAlgorithm.cs
- SiteMembershipCondition.cs
- HttpRuntime.cs
- HelloOperationCD1AsyncResult.cs
- Regex.cs
- DynamicActivityTypeDescriptor.cs
- DigestTraceRecordHelper.cs
- QilList.cs
- StrongNamePublicKeyBlob.cs
- SvcMapFileSerializer.cs
- XamlFigureLengthSerializer.cs
- login.cs
- WindowsEditBoxRange.cs
- CodeTypeReferenceSerializer.cs
- DataSourceCollectionBase.cs
- UniqueConstraint.cs
- UserInitiatedRoutedEventPermission.cs
- HttpCapabilitiesSectionHandler.cs
- Material.cs
- ThemeInfoAttribute.cs
- SmtpCommands.cs
- Completion.cs
- Compilation.cs
- HtmlTable.cs
- PropertyGridView.cs
- HandledMouseEvent.cs
- ManagementScope.cs
- QueryHandler.cs
- SourceItem.cs
- Quack.cs
- PolicyManager.cs
- NamespaceQuery.cs
- WeakEventTable.cs
- SafeHandles.cs
- httpapplicationstate.cs
- MatrixCamera.cs
- SignerInfo.cs
- UserControl.cs
- QfeChecker.cs
- AnnotationAdorner.cs
- Guid.cs
- InternalPermissions.cs
- _ScatterGatherBuffers.cs
- InputReport.cs
- AsyncWaitHandle.cs
- AuthorizationRule.cs
- Compiler.cs
- RunWorkerCompletedEventArgs.cs
- LinqDataSourceValidationException.cs
- XmlQualifiedName.cs
- InstanceNotReadyException.cs
- DPTypeDescriptorContext.cs
- EllipticalNodeOperations.cs
- SafeNativeMethodsCLR.cs
- QilInvokeEarlyBound.cs
- DateTimeHelper.cs
- PersonalizationProvider.cs
- BindingContext.cs
- BitmapEffect.cs
- InheritanceRules.cs
- FileUtil.cs
- SecurityUniqueId.cs
- TypeExtensionConverter.cs
- securitycriticaldata.cs
- FacetDescriptionElement.cs
- DesignTimeParseData.cs
- TextElementCollectionHelper.cs
- EmissiveMaterial.cs
- StringDictionary.cs
- LoginCancelEventArgs.cs
- ExpressionEditorAttribute.cs
- CallContext.cs
- RegexCaptureCollection.cs
- PropertyGridEditorPart.cs
- RotateTransform3D.cs
- ProtocolInformationWriter.cs
- ClientBuildManager.cs
- DataGridViewLinkCell.cs
- MessageBox.cs
- RegisteredDisposeScript.cs
- SweepDirectionValidation.cs
- BamlLocalizableResourceKey.cs
- QilXmlWriter.cs
- DataPagerCommandEventArgs.cs
- ManipulationDelta.cs
- XmlDataSource.cs