Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsHost / PageVisual.cs / 1305600 / PageVisual.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: PageVisual.cs // // Description: Visual representing a PTS page. // // History: // 11/11/2003 : [....] - created. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Threading; namespace MS.Internal.PtsHost { // --------------------------------------------------------------------- // Visual representing a PTS page. // --------------------------------------------------------------------- internal class PageVisual : DrawingVisual, IContentHost { // ------------------------------------------------------------------ // Create a visual representing a PTS page. // ----------------------------------------------------------------- internal PageVisual(FlowDocumentPage owner) { _owner = new WeakReference(owner); } // ------------------------------------------------------------------ // Set information about background that is necessary for rendering // process. // // backgroundBrush - The background brush used for background. // renderBounds - Render bounds of the visual. // ------------------------------------------------------------------ internal void DrawBackground(Brush backgroundBrush, Rect renderBounds) { if (_backgroundBrush != backgroundBrush || _renderBounds != renderBounds) { _backgroundBrush = backgroundBrush; _renderBounds = renderBounds; // Open DrawingContext and draw background. // If background is not set, Open will clean the render data, but it // will preserve visual children. using (DrawingContext dc = RenderOpen()) { if (_backgroundBrush != null) { dc.DrawRectangle(_backgroundBrush, null, _renderBounds); } else { dc.DrawRectangle(Brushes.Transparent, null, _renderBounds); } } } } // ----------------------------------------------------------------- // Get/Set visual child. // ------------------------------------------------------------------ internal Visual Child { get { VisualCollection vc = this.Children; Debug.Assert(vc.Count <= 1); return (vc.Count == 0) ? null : vc[0]; } set { VisualCollection vc = this.Children; Debug.Assert(vc.Count <= 1); if (vc.Count == 0) { vc.Add(value); } else if (vc[0] != value) { vc[0] = value; } // else Visual child is the same as already stored; do nothing. } } // ----------------------------------------------------------------- // Clear its DrawingContext // Opening and closing a DrawingContext, clears it. // ----------------------------------------------------------------- internal void ClearDrawingContext() { DrawingContext ctx = this.RenderOpen(); if(ctx != null) ctx.Close(); } //------------------------------------------------------------------- // // IContentHost Members // //-------------------------------------------------------------------- #region IContentHost Members ////// IInputElement IContentHost.InputHitTest(Point point) { IContentHost host = _owner.Target as IContentHost; if (host != null) { return host.InputHitTest(point); } return null; } ////// /// ReadOnlyCollection/// IContentHost.GetRectangles(ContentElement child) { IContentHost host = _owner.Target as IContentHost; if (host != null) { return host.GetRectangles(child); } return new ReadOnlyCollection (new List (0)); } /// /// IEnumerator/// IContentHost.HostedElements { get { IContentHost host = _owner.Target as IContentHost; if (host != null) { return host.HostedElements; } return null; } } /// /// void IContentHost.OnChildDesiredSizeChanged(UIElement child) { IContentHost host = _owner.Target as IContentHost; if (host != null) { host.OnChildDesiredSizeChanged(child); } } #endregion IContentHost Members // ----------------------------------------------------------------- // Reference to DocumentPage that owns this visual. // ------------------------------------------------------------------ private readonly WeakReference _owner; // ------------------------------------------------------------------ // Brush used for background rendering. // ----------------------------------------------------------------- private Brush _backgroundBrush; // ------------------------------------------------------------------ // Render bounds. // ----------------------------------------------------------------- private Rect _renderBounds; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: PageVisual.cs // // Description: Visual representing a PTS page. // // History: // 11/11/2003 : [....] - created. // //--------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Windows; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Threading; namespace MS.Internal.PtsHost { // --------------------------------------------------------------------- // Visual representing a PTS page. // --------------------------------------------------------------------- internal class PageVisual : DrawingVisual, IContentHost { // ------------------------------------------------------------------ // Create a visual representing a PTS page. // ----------------------------------------------------------------- internal PageVisual(FlowDocumentPage owner) { _owner = new WeakReference(owner); } // ------------------------------------------------------------------ // Set information about background that is necessary for rendering // process. // // backgroundBrush - The background brush used for background. // renderBounds - Render bounds of the visual. // ------------------------------------------------------------------ internal void DrawBackground(Brush backgroundBrush, Rect renderBounds) { if (_backgroundBrush != backgroundBrush || _renderBounds != renderBounds) { _backgroundBrush = backgroundBrush; _renderBounds = renderBounds; // Open DrawingContext and draw background. // If background is not set, Open will clean the render data, but it // will preserve visual children. using (DrawingContext dc = RenderOpen()) { if (_backgroundBrush != null) { dc.DrawRectangle(_backgroundBrush, null, _renderBounds); } else { dc.DrawRectangle(Brushes.Transparent, null, _renderBounds); } } } } // ----------------------------------------------------------------- // Get/Set visual child. // ------------------------------------------------------------------ internal Visual Child { get { VisualCollection vc = this.Children; Debug.Assert(vc.Count <= 1); return (vc.Count == 0) ? null : vc[0]; } set { VisualCollection vc = this.Children; Debug.Assert(vc.Count <= 1); if (vc.Count == 0) { vc.Add(value); } else if (vc[0] != value) { vc[0] = value; } // else Visual child is the same as already stored; do nothing. } } // ----------------------------------------------------------------- // Clear its DrawingContext // Opening and closing a DrawingContext, clears it. // ----------------------------------------------------------------- internal void ClearDrawingContext() { DrawingContext ctx = this.RenderOpen(); if(ctx != null) ctx.Close(); } //------------------------------------------------------------------- // // IContentHost Members // //-------------------------------------------------------------------- #region IContentHost Members ////// /// IInputElement IContentHost.InputHitTest(Point point) { IContentHost host = _owner.Target as IContentHost; if (host != null) { return host.InputHitTest(point); } return null; } ////// /// ReadOnlyCollection/// IContentHost.GetRectangles(ContentElement child) { IContentHost host = _owner.Target as IContentHost; if (host != null) { return host.GetRectangles(child); } return new ReadOnlyCollection (new List (0)); } /// /// IEnumerator/// IContentHost.HostedElements { get { IContentHost host = _owner.Target as IContentHost; if (host != null) { return host.HostedElements; } return null; } } /// /// void IContentHost.OnChildDesiredSizeChanged(UIElement child) { IContentHost host = _owner.Target as IContentHost; if (host != null) { host.OnChildDesiredSizeChanged(child); } } #endregion IContentHost Members // ----------------------------------------------------------------- // Reference to DocumentPage that owns this visual. // ------------------------------------------------------------------ private readonly WeakReference _owner; // ------------------------------------------------------------------ // Brush used for background rendering. // ----------------------------------------------------------------- private Brush _backgroundBrush; // ------------------------------------------------------------------ // Render bounds. // ----------------------------------------------------------------- private Rect _renderBounds; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectQueryExecutionPlan.cs
- BooleanStorage.cs
- SqlUserDefinedTypeAttribute.cs
- MessageSecurityOverMsmq.cs
- WsatConfiguration.cs
- CheckBoxRenderer.cs
- FileUtil.cs
- DiscoveryServerProtocol.cs
- TabItem.cs
- WindowsFormsHostPropertyMap.cs
- LongPath.cs
- WmlObjectListAdapter.cs
- SqlTopReducer.cs
- SchemaNotation.cs
- _AuthenticationState.cs
- RoleService.cs
- StructuralCache.cs
- ColumnMapTranslator.cs
- SmtpReplyReaderFactory.cs
- PageAsyncTaskManager.cs
- InkCanvasAutomationPeer.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- PrinterResolution.cs
- BehaviorEditorPart.cs
- DrawListViewSubItemEventArgs.cs
- httpstaticobjectscollection.cs
- RegexWorker.cs
- Fault.cs
- UserControlBuildProvider.cs
- OleCmdHelper.cs
- KnownTypesProvider.cs
- TypeConverterHelper.cs
- GradientSpreadMethodValidation.cs
- OdbcEnvironment.cs
- AbsoluteQuery.cs
- ObjectItemCollection.cs
- StringConcat.cs
- Globals.cs
- COM2AboutBoxPropertyDescriptor.cs
- KeyValueSerializer.cs
- GridViewUpdateEventArgs.cs
- WebPartActionVerb.cs
- DateTimeFormatInfoScanner.cs
- CharKeyFrameCollection.cs
- Pens.cs
- PartDesigner.cs
- EvidenceTypeDescriptor.cs
- EntityTypeEmitter.cs
- PhonemeConverter.cs
- NodeLabelEditEvent.cs
- UniqueIdentifierService.cs
- ProxyHelper.cs
- OperatingSystemVersionCheck.cs
- ProfilePropertyMetadata.cs
- XmlSchemaSimpleContent.cs
- FixedHyperLink.cs
- DetailsViewInsertEventArgs.cs
- SemanticAnalyzer.cs
- Hashtable.cs
- DocumentViewerAutomationPeer.cs
- DateTimeValueSerializer.cs
- Int64.cs
- XmlSchemaDatatype.cs
- SaveCardRequest.cs
- XmlArrayAttribute.cs
- CompoundFileStreamReference.cs
- XmlEncoding.cs
- RichTextBox.cs
- RSAProtectedConfigurationProvider.cs
- EmptyWithCancelationCheckWorkItem.cs
- XmlAtomErrorReader.cs
- TransformConverter.cs
- UIElementIsland.cs
- StackSpiller.Bindings.cs
- Application.cs
- WebBrowser.cs
- XmlBuffer.cs
- GlyphInfoList.cs
- _SslStream.cs
- MbpInfo.cs
- BamlVersionHeader.cs
- CustomCredentialPolicy.cs
- XmlIgnoreAttribute.cs
- StackSpiller.Temps.cs
- XmlHelper.cs
- versioninfo.cs
- ListViewInsertionMark.cs
- CheckBoxDesigner.cs
- ExeConfigurationFileMap.cs
- FlowDocumentPaginator.cs
- ResolvedKeyFrameEntry.cs
- ExtenderControl.cs
- ObjectStorage.cs
- DocumentApplication.cs
- DbConvert.cs
- DocumentSchemaValidator.cs
- SpellerInterop.cs
- WebServiceResponse.cs
- TextEditorCopyPaste.cs
- ValidationErrorCollection.cs