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
- AsyncResult.cs
- ChtmlSelectionListAdapter.cs
- SoundPlayer.cs
- MarkedHighlightComponent.cs
- StreamUpdate.cs
- PathSegmentCollection.cs
- ArgumentOutOfRangeException.cs
- MessagePropertyVariants.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- AuthenticationModuleElementCollection.cs
- DataServiceBuildProvider.cs
- PageSettings.cs
- IItemContainerGenerator.cs
- HtmlTableRowCollection.cs
- DesignTimeVisibleAttribute.cs
- Int64.cs
- TextCollapsingProperties.cs
- SizeConverter.cs
- FixedSOMGroup.cs
- ToolboxItemAttribute.cs
- EntityCommandExecutionException.cs
- AppliedDeviceFiltersEditor.cs
- SerializationInfoEnumerator.cs
- QilReplaceVisitor.cs
- PauseStoryboard.cs
- BevelBitmapEffect.cs
- SQLInt32Storage.cs
- EntitySqlException.cs
- XXXOnTypeBuilderInstantiation.cs
- CodeDesigner.cs
- MultipleViewProviderWrapper.cs
- XmlElementList.cs
- SystemIPGlobalStatistics.cs
- BitConverter.cs
- ArithmeticException.cs
- DispatchProxy.cs
- Adorner.cs
- GenericUriParser.cs
- SafeNativeMethods.cs
- TextParaClient.cs
- StringComparer.cs
- TypeGenericEnumerableViewSchema.cs
- XmlDataSource.cs
- securitycriticaldata.cs
- followingquery.cs
- ListViewGroupItemCollection.cs
- ActivityCollectionMarkupSerializer.cs
- TextBoxRenderer.cs
- recordstatescratchpad.cs
- EdgeProfileValidation.cs
- AssemblyInfo.cs
- FileStream.cs
- DataGridViewLinkCell.cs
- MILUtilities.cs
- Int16KeyFrameCollection.cs
- DATA_BLOB.cs
- Exceptions.cs
- ExpressionVisitor.cs
- XmlNamespaceManager.cs
- SQLBinaryStorage.cs
- HttpProcessUtility.cs
- _HeaderInfo.cs
- SupportsEventValidationAttribute.cs
- SafeBitVector32.cs
- LinearGradientBrush.cs
- DataGridViewMethods.cs
- XslVisitor.cs
- FocusManager.cs
- NeutralResourcesLanguageAttribute.cs
- UnmanagedMemoryStream.cs
- ListViewTableRow.cs
- WCFBuildProvider.cs
- GPRECTF.cs
- CodeTypeMemberCollection.cs
- InkCanvas.cs
- ListCollectionView.cs
- CachedFontFace.cs
- ExpressionBinding.cs
- Context.cs
- ProfileSettingsCollection.cs
- DataGridViewCellMouseEventArgs.cs
- RuleSetCollection.cs
- WebServiceHost.cs
- NetStream.cs
- ECDiffieHellmanCng.cs
- TemporaryBitmapFile.cs
- ContextStack.cs
- StringDictionaryEditor.cs
- DataGridColumnHeader.cs
- FixUp.cs
- GroupStyle.cs
- PrimarySelectionAdorner.cs
- HtmlInputPassword.cs
- AxisAngleRotation3D.cs
- HiddenFieldDesigner.cs
- SafeProcessHandle.cs
- DataSourceControl.cs
- EditorZoneBase.cs
- ForEachAction.cs
- ListBase.cs