Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- MenuCommand.cs
- HttpCachePolicy.cs
- linebase.cs
- MailAddress.cs
- UserNamePasswordValidator.cs
- SecurityContext.cs
- ControlCollection.cs
- ReadOnlyCollection.cs
- XmlBinaryReader.cs
- ExpandCollapsePatternIdentifiers.cs
- LayoutUtils.cs
- DayRenderEvent.cs
- Metafile.cs
- TabControl.cs
- Screen.cs
- FileStream.cs
- DesignerRegionMouseEventArgs.cs
- GeneralTransform.cs
- ChannelServices.cs
- AppDomainProtocolHandler.cs
- UserNameSecurityTokenProvider.cs
- HtmlTernaryTree.cs
- Polyline.cs
- AsymmetricSignatureFormatter.cs
- BroadcastEventHelper.cs
- ArithmeticException.cs
- NodeLabelEditEvent.cs
- MethodBuilderInstantiation.cs
- ExpressionBuilderContext.cs
- ContextMenuAutomationPeer.cs
- DiscoveryClientProtocol.cs
- CancellationScope.cs
- HtmlInputReset.cs
- _emptywebproxy.cs
- WebPartAddingEventArgs.cs
- WebConfigurationFileMap.cs
- ExtensionFile.cs
- basevalidator.cs
- DataGridViewRowStateChangedEventArgs.cs
- SqlInternalConnectionTds.cs
- PartManifestEntry.cs
- XmlSchemaExporter.cs
- SafeRegistryKey.cs
- LayoutEditorPart.cs
- QuaternionAnimation.cs
- AdjustableArrowCap.cs
- ActiveXContainer.cs
- TextCompositionManager.cs
- datacache.cs
- ReferencedCollectionType.cs
- ConfigUtil.cs
- ObjectItemAssemblyLoader.cs
- SchemaDeclBase.cs
- TranslateTransform3D.cs
- HitTestWithGeometryDrawingContextWalker.cs
- Imaging.cs
- SourceItem.cs
- AttachedPropertyBrowsableAttribute.cs
- ScopedKnownTypes.cs
- PaginationProgressEventArgs.cs
- AttachedPropertyMethodSelector.cs
- ObjectToken.cs
- HtmlTernaryTree.cs
- NavigateEvent.cs
- RewritingProcessor.cs
- SqlProvider.cs
- HyperLinkStyle.cs
- CompositeDesignerAccessibleObject.cs
- WebServiceData.cs
- CodeSubDirectory.cs
- TcpProcessProtocolHandler.cs
- Base64Encoder.cs
- SqlConnectionFactory.cs
- GridProviderWrapper.cs
- ViewService.cs
- XmlNodeChangedEventManager.cs
- ScrollChrome.cs
- DefaultAuthorizationContext.cs
- RijndaelCryptoServiceProvider.cs
- TextBoxAutoCompleteSourceConverter.cs
- MissingSatelliteAssemblyException.cs
- TemplateBindingExtension.cs
- MenuEventArgs.cs
- Transform.cs
- TCPListener.cs
- CachingParameterInspector.cs
- MatrixAnimationUsingKeyFrames.cs
- FilterQueryOptionExpression.cs
- TextCollapsingProperties.cs
- TemplateControlBuildProvider.cs
- CodeArgumentReferenceExpression.cs
- Application.cs
- Stackframe.cs
- OdbcConnectionString.cs
- IHttpResponseInternal.cs
- TransportConfigurationTypeElement.cs
- ToolStripDropDownItem.cs
- FlowDocumentScrollViewer.cs
- DbDataAdapter.cs
- PointKeyFrameCollection.cs