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
- Error.cs
- IsolatedStoragePermission.cs
- PublisherMembershipCondition.cs
- MetabaseReader.cs
- InternalConfigHost.cs
- SimpleBitVector32.cs
- FixedSOMPage.cs
- WebPartConnectionsCancelVerb.cs
- BitConverter.cs
- QuotedStringFormatReader.cs
- CommonDialog.cs
- QueryOpeningEnumerator.cs
- Pair.cs
- Help.cs
- GeometryCollection.cs
- WorkerRequest.cs
- ProbeMatchesApril2005.cs
- JapaneseCalendar.cs
- EnumConverter.cs
- NetSectionGroup.cs
- Mutex.cs
- Latin1Encoding.cs
- CompiledQueryCacheEntry.cs
- ToolStripItemRenderEventArgs.cs
- WorkflowDefinitionContext.cs
- Pkcs7Recipient.cs
- WeakReferenceKey.cs
- PagesChangedEventArgs.cs
- DataGridViewColumnStateChangedEventArgs.cs
- BreakRecordTable.cs
- PreProcessInputEventArgs.cs
- initElementDictionary.cs
- CodeExporter.cs
- Int16AnimationUsingKeyFrames.cs
- BindingParameterCollection.cs
- DynamicObject.cs
- MenuCommand.cs
- Latin1Encoding.cs
- Int64Storage.cs
- HttpWriter.cs
- tabpagecollectioneditor.cs
- TargetControlTypeAttribute.cs
- CompiledQuery.cs
- DesignBindingPicker.cs
- MessageQueuePermissionEntryCollection.cs
- TdsParserSessionPool.cs
- _AcceptOverlappedAsyncResult.cs
- FileDialog.cs
- PathFigureCollectionValueSerializer.cs
- DecoratedNameAttribute.cs
- PageWrapper.cs
- WasAdminWrapper.cs
- ImageListStreamer.cs
- BitmapMetadata.cs
- ArrayItemValue.cs
- ToolboxComponentsCreatedEventArgs.cs
- ScrollBarAutomationPeer.cs
- ToolBarDesigner.cs
- XmlCharCheckingReader.cs
- BitVec.cs
- BooleanKeyFrameCollection.cs
- ServiceModelActivity.cs
- DesignerMetadata.cs
- WebPartDeleteVerb.cs
- securestring.cs
- WorkflowTransactionService.cs
- RectAnimationUsingKeyFrames.cs
- UrlMappingsSection.cs
- TdsParserSafeHandles.cs
- Ops.cs
- Int32AnimationUsingKeyFrames.cs
- RequestTimeoutManager.cs
- PatternMatcher.cs
- XamlToRtfParser.cs
- TextSyndicationContent.cs
- GatewayDefinition.cs
- DirectoryInfo.cs
- TdsParser.cs
- FrameworkReadOnlyPropertyMetadata.cs
- Nullable.cs
- HtmlValidatorAdapter.cs
- XPathCompileException.cs
- Point3DCollectionConverter.cs
- DataGridItemAutomationPeer.cs
- ErrorEventArgs.cs
- CopyAttributesAction.cs
- METAHEADER.cs
- SafeLibraryHandle.cs
- DbProviderFactory.cs
- HttpServerChannel.cs
- HistoryEventArgs.cs
- TagMapInfo.cs
- SetIndexBinder.cs
- EventManager.cs
- Preprocessor.cs
- RectangleF.cs
- InputReport.cs
- DataRowExtensions.cs
- AssemblyNameProxy.cs
- WindowsIdentity.cs