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
- TableStyle.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- CaseExpr.cs
- SamlAttribute.cs
- SQLByteStorage.cs
- UpdatePanel.cs
- DispatcherObject.cs
- FigureHelper.cs
- Gdiplus.cs
- WsiProfilesElement.cs
- List.cs
- ListBindingHelper.cs
- ProxyBuilder.cs
- SoundPlayerAction.cs
- ValidationErrorCollection.cs
- TrustManager.cs
- DropDownList.cs
- ScrollChrome.cs
- connectionpool.cs
- TreeViewItemAutomationPeer.cs
- BindingExpressionBase.cs
- PropertyTab.cs
- XmlSchemaResource.cs
- PEFileEvidenceFactory.cs
- ChildrenQuery.cs
- TdsParameterSetter.cs
- EmptyCollection.cs
- SerializationInfoEnumerator.cs
- ErrorRuntimeConfig.cs
- SmiMetaData.cs
- Vector.cs
- DynamicQueryableWrapper.cs
- XmlSchemaInferenceException.cs
- DeviceSpecificDialogCachedState.cs
- XmlSerializationReader.cs
- DataGridViewAccessibleObject.cs
- ZoomingMessageFilter.cs
- SelectionWordBreaker.cs
- UInt64.cs
- CheckBox.cs
- SendingRequestEventArgs.cs
- InstalledFontCollection.cs
- XmlTextReader.cs
- Int32AnimationUsingKeyFrames.cs
- DataGridViewSortCompareEventArgs.cs
- PixelFormatConverter.cs
- DecimalAnimation.cs
- UnitySerializationHolder.cs
- ErrorFormatterPage.cs
- TextTreeInsertElementUndoUnit.cs
- SecurityResources.cs
- ScrollChrome.cs
- SqlDataSourceFilteringEventArgs.cs
- XmlIlTypeHelper.cs
- CustomActivityDesigner.cs
- DictionaryEntry.cs
- Queue.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- InvokerUtil.cs
- UIPermission.cs
- ComponentDispatcher.cs
- RequestTimeoutManager.cs
- UnsafeNativeMethods.cs
- BinaryReader.cs
- CompilerState.cs
- TypeToken.cs
- Style.cs
- parserscommon.cs
- ResourceProperty.cs
- CodeTypeDeclarationCollection.cs
- BCryptSafeHandles.cs
- XmlnsDictionary.cs
- HandlerWithFactory.cs
- __Error.cs
- HtmlInputReset.cs
- PerformanceCounterPermission.cs
- CodeBlockBuilder.cs
- ToolStripDropDownMenu.cs
- FragmentQuery.cs
- CodeThrowExceptionStatement.cs
- TreeNodeSelectionProcessor.cs
- DeferredReference.cs
- ContextQuery.cs
- StatusBarDrawItemEvent.cs
- AttachInfo.cs
- EventLogPermissionAttribute.cs
- ServiceModelPerformanceCounters.cs
- LabelLiteral.cs
- TargetParameterCountException.cs
- LinearKeyFrames.cs
- PointValueSerializer.cs
- QuerySubExprEliminator.cs
- StylusButton.cs
- StoreItemCollection.cs
- ScriptRegistrationManager.cs
- MonitorWrapper.cs
- DoubleMinMaxAggregationOperator.cs
- ObjectReferenceStack.cs
- RequestSecurityToken.cs
- DataGridViewSelectedCellsAccessibleObject.cs