Code:
/ 4.0 / 4.0 / untmp / 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; i
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CoTaskMemHandle.cs
- HttpListenerResponse.cs
- PersonalizationState.cs
- IImplicitResourceProvider.cs
- TiffBitmapEncoder.cs
- Char.cs
- EmptyControlCollection.cs
- WindowsListViewScroll.cs
- SR.cs
- FieldAccessException.cs
- ReadOnlyAttribute.cs
- ParserOptions.cs
- Serializer.cs
- NamespaceEmitter.cs
- BooleanToVisibilityConverter.cs
- BindingContext.cs
- DefaultPrintController.cs
- ControlAdapter.cs
- TextClipboardData.cs
- PageCatalogPartDesigner.cs
- ProviderConnectionPointCollection.cs
- GetReadStreamResult.cs
- HttpApplication.cs
- VectorConverter.cs
- IntPtr.cs
- TableDetailsCollection.cs
- HtmlLink.cs
- WebConvert.cs
- SystemResources.cs
- InteropExecutor.cs
- SqlServices.cs
- MouseActionValueSerializer.cs
- DashStyle.cs
- DocumentViewerBaseAutomationPeer.cs
- BooleanAnimationBase.cs
- RefExpr.cs
- DefaultWorkflowSchedulerService.cs
- DescriptionAttribute.cs
- FormatterServices.cs
- SpeechSynthesizer.cs
- InstancePersistence.cs
- QueryOutputWriter.cs
- AdPostCacheSubstitution.cs
- DataRecordObjectView.cs
- AdapterDictionary.cs
- SqlRetyper.cs
- CopyNodeSetAction.cs
- ScrollChangedEventArgs.cs
- AuthenticationManager.cs
- HtmlForm.cs
- FontStretch.cs
- _CommandStream.cs
- WebConfigurationHost.cs
- StateManagedCollection.cs
- NameSpaceExtractor.cs
- VisualBrush.cs
- Grid.cs
- NegationPusher.cs
- CommandHelper.cs
- input.cs
- AvtEvent.cs
- TextEditorTables.cs
- DesignerActionUIService.cs
- ObjectDataSourceSelectingEventArgs.cs
- CompleteWizardStep.cs
- TemplatingOptionsDialog.cs
- JapaneseLunisolarCalendar.cs
- EdmProviderManifest.cs
- WindowInteractionStateTracker.cs
- WizardPanel.cs
- Size3D.cs
- AppearanceEditorPart.cs
- CalendarData.cs
- BuildProvidersCompiler.cs
- Trigger.cs
- PropertyTabAttribute.cs
- CultureSpecificStringDictionary.cs
- ChtmlPhoneCallAdapter.cs
- KeyPullup.cs
- DataGridViewColumnCollectionEditor.cs
- UpdatePanelTrigger.cs
- ProcessModuleCollection.cs
- TypeSystemHelpers.cs
- CursorConverter.cs
- DataServiceQuery.cs
- NodeFunctions.cs
- RawStylusInputCustomData.cs
- AsyncDataRequest.cs
- XmlCharCheckingWriter.cs
- ECDiffieHellman.cs
- SoapEnumAttribute.cs
- Geometry.cs
- ComponentSerializationService.cs
- ChainedAsyncResult.cs
- FixedSchema.cs
- IOException.cs
- KeySplineConverter.cs
- CatalogPartCollection.cs
- BufferedWebEventProvider.cs
- EventLogPermission.cs