Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / FixedSOMFixedBlock.cs / 1305600 / 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
- TypeDescriptor.cs
- InstalledVoice.cs
- SchemaAttDef.cs
- ComponentDispatcherThread.cs
- GPPOINTF.cs
- FontDialog.cs
- PropertyEmitterBase.cs
- TabletDevice.cs
- DataGridComboBoxColumn.cs
- ErrorFormatterPage.cs
- DataGridViewRowStateChangedEventArgs.cs
- CodeDOMProvider.cs
- XmlNodeWriter.cs
- DbgUtil.cs
- Sql8ExpressionRewriter.cs
- Color.cs
- StylusPointPropertyInfo.cs
- NullableFloatAverageAggregationOperator.cs
- PointCollectionValueSerializer.cs
- EdgeProfileValidation.cs
- DrawingContextDrawingContextWalker.cs
- ProtocolsConfigurationHandler.cs
- CustomTokenProvider.cs
- AxisAngleRotation3D.cs
- FilterableAttribute.cs
- StreamSecurityUpgradeProvider.cs
- PageAdapter.cs
- Config.cs
- DateRangeEvent.cs
- LiteralSubsegment.cs
- TextCharacters.cs
- ConsoleEntryPoint.cs
- AutoSizeComboBox.cs
- AssociationSet.cs
- PersistNameAttribute.cs
- RotationValidation.cs
- DocumentViewerHelper.cs
- PageCodeDomTreeGenerator.cs
- ToolStripRendererSwitcher.cs
- AspNetSynchronizationContext.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- ZipFileInfoCollection.cs
- ClientSponsor.cs
- ContentPosition.cs
- MDIControlStrip.cs
- ValueTable.cs
- ReaderWriterLockWrapper.cs
- DataControlFieldCell.cs
- SortKey.cs
- InplaceBitmapMetadataWriter.cs
- MexBindingBindingCollectionElement.cs
- LineServices.cs
- PlainXmlSerializer.cs
- DetailsViewPageEventArgs.cs
- SqlUnionizer.cs
- ExpressionCopier.cs
- ValidatorCompatibilityHelper.cs
- SpeechRecognitionEngine.cs
- SizeAnimation.cs
- WorkflowQueue.cs
- UnsignedPublishLicense.cs
- PrintPreviewGraphics.cs
- CommandTreeTypeHelper.cs
- ExceptionTrace.cs
- JoinQueryOperator.cs
- SizeConverter.cs
- Calendar.cs
- XmlWriterSettings.cs
- XmlAutoDetectWriter.cs
- StylusButtonEventArgs.cs
- Link.cs
- ApplicationInterop.cs
- ConfigXmlCDataSection.cs
- SegmentTree.cs
- PropertyMetadata.cs
- MsmqDecodeHelper.cs
- CapiNative.cs
- CharAnimationUsingKeyFrames.cs
- BlobPersonalizationState.cs
- SectionInformation.cs
- SchemaMapping.cs
- WebPartActionVerb.cs
- BoundPropertyEntry.cs
- cryptoapiTransform.cs
- XmlAttribute.cs
- ElementHost.cs
- WeakReferenceList.cs
- PartitionResolver.cs
- NameTable.cs
- ArraySegment.cs
- AxisAngleRotation3D.cs
- TextDecorationUnitValidation.cs
- SchemaAttDef.cs
- Debug.cs
- CorrelationExtension.cs
- DateTimeSerializationSection.cs
- BigIntegerStorage.cs
- UIElementHelper.cs
- SqlFacetAttribute.cs
- RoutedEvent.cs