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
- Int32RectConverter.cs
- UrlAuthFailureHandler.cs
- MarkupCompilePass2.cs
- StringValueSerializer.cs
- XmlWriterSettings.cs
- GenericPrincipal.cs
- Rijndael.cs
- DataRecordInfo.cs
- DecoderNLS.cs
- Ray3DHitTestResult.cs
- EncoderReplacementFallback.cs
- CompilerGlobalScopeAttribute.cs
- TemplatePropertyEntry.cs
- StrongNameHelpers.cs
- OptimalTextSource.cs
- ConstraintManager.cs
- JapaneseCalendar.cs
- bidPrivateBase.cs
- Evaluator.cs
- ExpressionBinding.cs
- ScrollViewerAutomationPeer.cs
- ObjectStorage.cs
- RepeatButtonAutomationPeer.cs
- RequestCachingSection.cs
- ReadOnlyState.cs
- LoginName.cs
- ImageCollectionCodeDomSerializer.cs
- LayoutUtils.cs
- AdornerLayer.cs
- SqlComparer.cs
- Visual3DCollection.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- FileRecordSequenceHelper.cs
- ZipFileInfo.cs
- RightsManagementEncryptedStream.cs
- RootDesignerSerializerAttribute.cs
- ControlCodeDomSerializer.cs
- Restrictions.cs
- PageOrientation.cs
- FrameworkElementAutomationPeer.cs
- Parsers.cs
- AvTraceDetails.cs
- HtmlInputCheckBox.cs
- TextRange.cs
- DataTableClearEvent.cs
- TouchesCapturedWithinProperty.cs
- DataSourceComponent.cs
- DoubleAnimationUsingKeyFrames.cs
- DeviceFiltersSection.cs
- BitmapEffectGroup.cs
- RecordsAffectedEventArgs.cs
- ColorContextHelper.cs
- WindowHideOrCloseTracker.cs
- SQLDateTime.cs
- PowerStatus.cs
- Trigger.cs
- CatalogZoneDesigner.cs
- ReservationCollection.cs
- XmlQualifiedName.cs
- TableLayoutColumnStyleCollection.cs
- mediapermission.cs
- PersonalizationEntry.cs
- PagesChangedEventArgs.cs
- DataGridViewColumnHeaderCell.cs
- BindingContext.cs
- SQLBytesStorage.cs
- PolyBezierSegment.cs
- XPathParser.cs
- EntityDataSourceWrapper.cs
- AuthorizationSection.cs
- TemplateBamlTreeBuilder.cs
- HMACMD5.cs
- XamlWriterExtensions.cs
- BindToObject.cs
- Int64Storage.cs
- Predicate.cs
- ConfigViewGenerator.cs
- DataGridPagerStyle.cs
- TcpConnectionPool.cs
- MSAANativeProvider.cs
- IsolatedStorageFile.cs
- CanonicalXml.cs
- SafeThemeHandle.cs
- BinaryConverter.cs
- ellipse.cs
- KeyPressEvent.cs
- WebPartManagerInternals.cs
- TimeSpanSecondsConverter.cs
- HtmlGenericControl.cs
- PassportIdentity.cs
- WsdlBuildProvider.cs
- BamlRecordHelper.cs
- ProtectedProviderSettings.cs
- ExpandCollapseProviderWrapper.cs
- HttpCookieCollection.cs
- BinaryExpressionHelper.cs
- UserControlParser.cs
- CheckBox.cs
- ProcessThread.cs
- AsyncPostBackErrorEventArgs.cs