Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- HttpListenerRequest.cs
- NamespaceList.cs
- GestureRecognizer.cs
- DefaultAutoFieldGenerator.cs
- CodeGeneratorOptions.cs
- ClientEventManager.cs
- ImageSourceConverter.cs
- UnmanagedMemoryStreamWrapper.cs
- XmlAttributeProperties.cs
- JoinTreeSlot.cs
- Ops.cs
- PageHandlerFactory.cs
- BaseConfigurationRecord.cs
- PageMediaSize.cs
- StreamGeometryContext.cs
- DbConnectionPoolOptions.cs
- IntSecurity.cs
- UnsafeNativeMethodsTablet.cs
- BitmapFrameDecode.cs
- ObjectKeyFrameCollection.cs
- SpecialNameAttribute.cs
- SendActivityValidator.cs
- Propagator.Evaluator.cs
- OdbcConnectionString.cs
- FontNameConverter.cs
- TraceUtils.cs
- SpotLight.cs
- RIPEMD160.cs
- InkCanvasFeedbackAdorner.cs
- MsmqTransportSecurityElement.cs
- BrowserCapabilitiesFactory.cs
- UserControlBuildProvider.cs
- TargetConverter.cs
- ProviderCollection.cs
- NotifyIcon.cs
- TableDesigner.cs
- HttpServerVarsCollection.cs
- ReceiveCompletedEventArgs.cs
- XmlCharCheckingReader.cs
- StateMachine.cs
- AssociatedControlConverter.cs
- XamlParser.cs
- ScriptServiceAttribute.cs
- ActivityInterfaces.cs
- FileSystemInfo.cs
- TreeViewCancelEvent.cs
- TimerEventSubscription.cs
- CombinedGeometry.cs
- ToolStripDropDownClosingEventArgs.cs
- Trace.cs
- ReverseInheritProperty.cs
- SerialReceived.cs
- InlineObject.cs
- UnconditionalPolicy.cs
- DragCompletedEventArgs.cs
- ObjectQuery.cs
- HuffmanTree.cs
- SimplePropertyEntry.cs
- RSAPKCS1SignatureFormatter.cs
- ProtocolImporter.cs
- XmlSchemaObject.cs
- DataServiceException.cs
- GlobalItem.cs
- VisualBrush.cs
- ZipPackage.cs
- InputLanguageProfileNotifySink.cs
- SqlBulkCopy.cs
- DateTimePicker.cs
- Image.cs
- Match.cs
- CompiledQueryCacheEntry.cs
- DebugTraceHelper.cs
- PathStreamGeometryContext.cs
- ReadOnlyHierarchicalDataSourceView.cs
- MenuItemStyleCollection.cs
- MimeTypeAttribute.cs
- NameTable.cs
- HashCodeCombiner.cs
- ProfileSection.cs
- XmlSchemaObjectCollection.cs
- BindToObject.cs
- CodeStatementCollection.cs
- XmlNodeComparer.cs
- DataGridViewCellParsingEventArgs.cs
- DiffuseMaterial.cs
- ToolStripComboBox.cs
- SmiGettersStream.cs
- AttributeCollection.cs
- PathSegmentCollection.cs
- ControlPropertyNameConverter.cs
- EventLogPermission.cs
- SqlDataSourceView.cs
- TemplatedMailWebEventProvider.cs
- BasicCellRelation.cs
- SecUtil.cs
- DomainUpDown.cs
- DesignTimeVisibleAttribute.cs
- BitmapEffectGroup.cs
- DataControlButton.cs
- BitmapFrameEncode.cs