Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / IO / Packaging / xmlfixedPageInfo.cs / 1 / xmlfixedPageInfo.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Implements a DOM-based subclass of the FixedPageInfo abstract class. // The class functions as an array of XmlGlyphRunInfo's in markup order. // // History: // 05/06/2004: [....]: Initial implementation //--------------------------------------------------------------------------- using System; using System.Windows; // For ExceptionStringTable using System.Xml; // For DOM objects using System.Diagnostics; // For Assert using System.Globalization; // For CultureInfo namespace MS.Internal.IO.Packaging { internal class XmlFixedPageInfo : MS.Internal.FixedPageInfo { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Initialize object from DOM node. /// ////// The DOM node is assumed to be a XAML FixedPage element. Its namespace URI /// is subsequently used to look for its nested Glyphs elements (see private property NodeList). /// internal XmlFixedPageInfo(XmlNode fixedPageNode) { _pageNode = fixedPageNode; Debug.Assert(_pageNode != null); if (_pageNode.LocalName != _fixedPageName || _pageNode.NamespaceURI != ElementTableKey.FixedMarkupNamespace) { throw new ArgumentException(SR.Get(SRID.UnexpectedXmlNodeInXmlFixedPageInfoConstructor, _pageNode.NamespaceURI, _pageNode.LocalName, ElementTableKey.FixedMarkupNamespace, _fixedPageName)); } } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// Get the glyph run at zero-based position 'position'. /// ////// Returns null for a nonexistent position. No exception raised. /// internal override GlyphRunInfo GlyphRunAtPosition(int position) { if (position < 0 || position >= GlyphRunList.Length) { return null; } if (GlyphRunList[position] == null) { GlyphRunList[position] = new XmlGlyphRunInfo(NodeList[position]); } return GlyphRunList[position]; } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Indicates the number of glyph runs on the page. /// internal override int GlyphRunCount { get { return GlyphRunList.Length; } } #endregion Internal Properties //----------------------------------------------------- // // Private Properties // //------------------------------------------------------ #region Private Properties ////// Lazily initialize _glyphRunList, an array of XmlGlyphInfo objects, /// using the NodeList private property. /// ////// When using Visual Studio to step through code using this property, make sure the option /// "Allow property evaluation in variables windows" is unchecked. /// private XmlGlyphRunInfo[] GlyphRunList { get { if (_glyphRunList == null) { _glyphRunList = new XmlGlyphRunInfo[NodeList.Count]; } return _glyphRunList; } } ////// Lazily initialize the list of Glyphs elements on the page using XPath. /// ////// When using Visual Studio to step through code using this property, make sure the option /// "Allow property evaluation in variables windows" is unchecked. /// private XmlNodeList NodeList { get { if (_nodeList == null) { string glyphRunQuery = String.Format(CultureInfo.InvariantCulture, ".//*[namespace-uri()='{0}' and local-name()='{1}']", ElementTableKey.FixedMarkupNamespace, _glyphRunName); _nodeList = _pageNode.SelectNodes(glyphRunQuery); } return _nodeList; } } #endregion Private Properties //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields #region Constants private const string _fixedPageName = "FixedPage"; private const string _glyphRunName = "Glyphs"; #endregion Constants private XmlNode _pageNode; private XmlNodeList _nodeList = null; private XmlGlyphRunInfo[] _glyphRunList = null; #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
- LocationSectionRecord.cs
- OptimizedTemplateContent.cs
- CharEntityEncoderFallback.cs
- Window.cs
- PackagePartCollection.cs
- ImageSource.cs
- Point.cs
- SecurityUniqueId.cs
- Message.cs
- UserPreferenceChangedEventArgs.cs
- LinqToSqlWrapper.cs
- DataGridViewRowsRemovedEventArgs.cs
- OleDbWrapper.cs
- ProgressBarRenderer.cs
- ReadonlyMessageFilter.cs
- HtmlTextArea.cs
- ObjectDataSource.cs
- LogExtentCollection.cs
- CaseInsensitiveHashCodeProvider.cs
- FocusWithinProperty.cs
- CodeMemberEvent.cs
- _BufferOffsetSize.cs
- WindowsListViewItemStartMenu.cs
- StrokeNodeOperations.cs
- Image.cs
- PermissionAttributes.cs
- SelectedDatesCollection.cs
- ObjectContext.cs
- OverlappedContext.cs
- Choices.cs
- TypeBuilder.cs
- XmlSecureResolver.cs
- SslStream.cs
- NavigationEventArgs.cs
- EdmRelationshipRoleAttribute.cs
- StyleConverter.cs
- AuthenticationModulesSection.cs
- StrokeCollectionConverter.cs
- PtsHost.cs
- FrugalList.cs
- BooleanSwitch.cs
- BufferModesCollection.cs
- ResolveCriteriaCD1.cs
- AnimationStorage.cs
- SafeViewOfFileHandle.cs
- Visual.cs
- WebEncodingValidatorAttribute.cs
- ExitEventArgs.cs
- HuffmanTree.cs
- querybuilder.cs
- WebPartCatalogAddVerb.cs
- Operator.cs
- AsymmetricAlgorithm.cs
- WebPartsSection.cs
- PathGradientBrush.cs
- ADMembershipUser.cs
- HotSpot.cs
- XmlDesignerDataSourceView.cs
- SerializerDescriptor.cs
- CurrentChangingEventArgs.cs
- AliasExpr.cs
- DocumentPageHost.cs
- New.cs
- ManagementObjectSearcher.cs
- ConnectionPoolRegistry.cs
- NodeInfo.cs
- iisPickupDirectory.cs
- SafeArrayRankMismatchException.cs
- shaperfactory.cs
- StringComparer.cs
- Compensate.cs
- InterleavedZipPartStream.cs
- XmlMemberMapping.cs
- IfAction.cs
- ToolboxItemAttribute.cs
- TaskForm.cs
- ConsumerConnectionPointCollection.cs
- UserNamePasswordValidationMode.cs
- TableLayout.cs
- AsyncOperationContext.cs
- FormsAuthenticationCredentials.cs
- GeneralTransform3DCollection.cs
- AssemblyNameUtility.cs
- DebugTrace.cs
- Function.cs
- Inline.cs
- SHA1Managed.cs
- CounterSet.cs
- TextServicesLoader.cs
- Viewport3DVisual.cs
- UIElementIsland.cs
- MultiPropertyDescriptorGridEntry.cs
- BigInt.cs
- FileLoadException.cs
- ObjectDataSourceDisposingEventArgs.cs
- VideoDrawing.cs
- StateChangeEvent.cs
- ColorKeyFrameCollection.cs
- AppLevelCompilationSectionCache.cs
- IndexingContentUnit.cs