Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Documents / FixedSOMFixedBlock.cs / 1 / FixedSOMFixedBlock.cs
/*++ File: FixedSOMFixedBlock.cs Copyright (C) 2005 Microsoft Corporation. All rights reserved. Description: This class reprsents a table row on the page. It would contain several table cells History: 05/17/2005: eleese - Created --*/ namespace System.Windows.Documents { using System.Collections; using System.Collections.Generic; using System.Windows.Media; using System.Globalization; using System.Diagnostics; using System.Text; internal sealed class FixedSOMFixedBlock : FixedSOMPageElement { //-------------------------------------------------------------------- // // Constructors // //--------------------------------------------------------------------- #region Constructors public FixedSOMFixedBlock(FixedSOMPage page) : base(page) { } #endregion Constructors #region Public Properties public double LineHeight { get { FixedSOMTextRun lastRun = this.LastTextRun; if (lastRun != null) { //Need to check for edge case - subscript or superscript at the end of a line if (this.SemanticBoxes.Count > 1) { FixedSOMTextRun run = this.SemanticBoxes[this.SemanticBoxes.Count - 2] as FixedSOMTextRun; if (run != null && lastRun.BoundingRect.Height / run.BoundingRect.Height < 0.75 && run.BoundingRect.Left != lastRun.BoundingRect.Left && run.BoundingRect.Right != lastRun.BoundingRect.Right && run.BoundingRect.Top != lastRun.BoundingRect.Top && run.BoundingRect.Bottom != lastRun.BoundingRect.Bottom) { return run.BoundingRect.Height; } } return lastRun.BoundingRect.Height; } else { return 0; } } } //return true if this FixedBlock is a wrapper around a floating image public bool IsFloatingImage { get { return (_semanticBoxes.Count == 1 && (_semanticBoxes[0] is FixedSOMImage)); } } internal override FixedElement.ElementType[] ElementTypes { get { return new FixedElement.ElementType[1] { FixedElement.ElementType.Paragraph }; } } public bool IsWhiteSpace { get { if (_semanticBoxes.Count == 0) { return false; } foreach (FixedSOMSemanticBox box in _semanticBoxes) { FixedSOMTextRun run = box as FixedSOMTextRun; if (run == null || !run.IsWhiteSpace) { return false; } } return true; } } public override bool IsRTL { get { return _RTLCount > _LTRCount; } } public Matrix Matrix { get { return _matrix; } } #endregion Public Properties #region Private Properties private FixedSOMTextRun LastTextRun { get { FixedSOMTextRun run = null; for (int i=_semanticBoxes.Count - 1; i>=0 && run==null; i--) { run = _semanticBoxes[i] as FixedSOMTextRun; } return run; } } #endregion Private Properties //------------------------------------------------------------------- // // Public Methods // //--------------------------------------------------------------------- #region Public Methods #if DEBUG public override void Render(DrawingContext dc, string label, DrawDebugVisual debugVisual) { Pen pen = new Pen(Brushes.Blue, 2); Rect rect = _boundingRect; rect.Inflate(3,3); dc.DrawRectangle(null, pen , rect); if (debugVisual == DrawDebugVisual.Paragraphs && label != null) { base.RenderLabel(dc, label); } for (int i=0; i1) { FixedSOMTextRun run = this.SemanticBoxes[this.SemanticBoxes.Count - 2] as FixedSOMTextRun; if (run != null && lastRun.BoundingRect.Height / run.BoundingRect.Height < 0.75 && run.BoundingRect.Left != lastRun.BoundingRect.Left && run.BoundingRect.Right != lastRun.BoundingRect.Right && run.BoundingRect.Top != lastRun.BoundingRect.Top && run.BoundingRect.Bottom != lastRun.BoundingRect.Bottom) { return run.BoundingRect.Height; } } return lastRun.BoundingRect.Height; } else { return 0; } } } //return true if this FixedBlock is a wrapper around a floating image public bool IsFloatingImage { get { return (_semanticBoxes.Count == 1 && (_semanticBoxes[0] is FixedSOMImage)); } } internal override FixedElement.ElementType[] ElementTypes { get { return new FixedElement.ElementType[1] { FixedElement.ElementType.Paragraph }; } } public bool IsWhiteSpace { get { if (_semanticBoxes.Count == 0) { return false; } foreach (FixedSOMSemanticBox box in _semanticBoxes) { FixedSOMTextRun run = box as FixedSOMTextRun; if (run == null || !run.IsWhiteSpace) { return false; } } return true; } } public override bool IsRTL { get { return _RTLCount > _LTRCount; } } public Matrix Matrix { get { return _matrix; } } #endregion Public Properties #region Private Properties private FixedSOMTextRun LastTextRun { get { FixedSOMTextRun run = null; for (int i=_semanticBoxes.Count - 1; i>=0 && run==null; i--) { run = _semanticBoxes[i] as FixedSOMTextRun; } return run; } } #endregion Private Properties //------------------------------------------------------------------- // // Public Methods // //--------------------------------------------------------------------- #region Public Methods #if DEBUG public override void Render(DrawingContext dc, string label, DrawDebugVisual debugVisual) { Pen pen = new Pen(Brushes.Blue, 2); Rect rect = _boundingRect; rect.Inflate(3,3); dc.DrawRectangle(null, pen , rect); if (debugVisual == DrawDebugVisual.Paragraphs && label != null) { base.RenderLabel(dc, label); } for (int i=0; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NativeMethods.cs
- DataGridViewSelectedColumnCollection.cs
- PublisherMembershipCondition.cs
- DataPager.cs
- InfoCardClaimCollection.cs
- UpdatePanel.cs
- MultiPageTextView.cs
- DocumentPageViewAutomationPeer.cs
- ExpandableObjectConverter.cs
- ErrorTableItemStyle.cs
- PropertyChangeTracker.cs
- GenericRootAutomationPeer.cs
- DbResourceAllocator.cs
- ConnectionPointGlyph.cs
- StatementContext.cs
- TypedServiceChannelBuilder.cs
- DetailsViewPagerRow.cs
- DuplicateWaitObjectException.cs
- Timeline.cs
- KeyNotFoundException.cs
- SqlConnectionManager.cs
- DiscreteKeyFrames.cs
- NamespaceTable.cs
- PostBackOptions.cs
- ConnectionManagementSection.cs
- EventMap.cs
- RemoteWebConfigurationHostStream.cs
- ConfigXmlCDataSection.cs
- RelationshipType.cs
- DashStyle.cs
- XmlEntity.cs
- WindowsScroll.cs
- Schema.cs
- XmlIncludeAttribute.cs
- WebPartsPersonalizationAuthorization.cs
- Expression.cs
- InkSerializer.cs
- GlyphShapingProperties.cs
- KeyboardEventArgs.cs
- SystemInformation.cs
- DES.cs
- WpfSharedBamlSchemaContext.cs
- MessageParameterAttribute.cs
- FontSourceCollection.cs
- EmptyControlCollection.cs
- Native.cs
- XmlILAnnotation.cs
- RTTrackingProfile.cs
- RelatedView.cs
- SliderAutomationPeer.cs
- SecurityContext.cs
- QueryHandler.cs
- StringConverter.cs
- XpsPackagingPolicy.cs
- OleDbErrorCollection.cs
- CellParagraph.cs
- WhiteSpaceTrimStringConverter.cs
- Symbol.cs
- SendKeys.cs
- ActiveXHost.cs
- X509ServiceCertificateAuthentication.cs
- RectIndependentAnimationStorage.cs
- HMACRIPEMD160.cs
- CorrelationTokenTypeConvertor.cs
- ServiceContractDetailViewControl.cs
- GenericUriParser.cs
- SettingsPropertyValue.cs
- SocketException.cs
- ImmComposition.cs
- KnownTypesProvider.cs
- TextEditorCopyPaste.cs
- AttributeProviderAttribute.cs
- PersonalizationDictionary.cs
- Random.cs
- HierarchicalDataBoundControlAdapter.cs
- EntityTypeEmitter.cs
- InputReport.cs
- ArrayTypeMismatchException.cs
- ModelPropertyDescriptor.cs
- RecordBuilder.cs
- AuthenticationModuleElementCollection.cs
- DescendantQuery.cs
- NumericUpDown.cs
- XmlSchemaSimpleContentExtension.cs
- MeshGeometry3D.cs
- Cursors.cs
- XPathMultyIterator.cs
- InstanceDescriptor.cs
- ProtocolsInstallComponent.cs
- PropertyPath.cs
- XmlSchemaSimpleContentRestriction.cs
- X509Extension.cs
- StateManagedCollection.cs
- ADRoleFactoryConfiguration.cs
- UnauthorizedAccessException.cs
- tabpagecollectioneditor.cs
- XmlQueryOutput.cs
- SystemSounds.cs
- InvariantComparer.cs
- Int32Animation.cs