Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / PtsHost / PageVisual.cs / 1 / 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.///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ErrorProvider.cs
- MailHeaderInfo.cs
- HtmlInputControl.cs
- RegexReplacement.cs
- KeyEvent.cs
- ExpressionPrefixAttribute.cs
- ColorInterpolationModeValidation.cs
- SymbolType.cs
- DataServices.cs
- ISessionStateStore.cs
- StrongNameUtility.cs
- ProfessionalColorTable.cs
- FunctionQuery.cs
- WebServiceBindingAttribute.cs
- mil_sdk_version.cs
- AutomationPatternInfo.cs
- OdbcConnectionFactory.cs
- RegexRunner.cs
- DecoderExceptionFallback.cs
- WebPartUserCapability.cs
- XmlSerializerObjectSerializer.cs
- FreezableOperations.cs
- HiddenFieldPageStatePersister.cs
- CodeVariableDeclarationStatement.cs
- AspNetCacheProfileAttribute.cs
- ListViewGroupItemCollection.cs
- ObjectListSelectEventArgs.cs
- NonVisualControlAttribute.cs
- SafeNativeMethods.cs
- NotifyParentPropertyAttribute.cs
- RegularExpressionValidator.cs
- DataBoundControlHelper.cs
- PtsContext.cs
- WindowsScrollBarBits.cs
- SqlUdtInfo.cs
- SoapClientProtocol.cs
- FlowDocumentReader.cs
- CredentialCache.cs
- _FixedSizeReader.cs
- CodeNamespaceImportCollection.cs
- TransformationRules.cs
- EntityDataSourceDesignerHelper.cs
- OdbcConnectionOpen.cs
- ServiceBusyException.cs
- FileVersionInfo.cs
- namescope.cs
- ManagementBaseObject.cs
- MouseEventArgs.cs
- DesignerSerializationVisibilityAttribute.cs
- Dynamic.cs
- WsatAdminException.cs
- FilterFactory.cs
- ClientConfigPaths.cs
- WindowShowOrOpenTracker.cs
- HttpErrorTraceRecord.cs
- CurrentChangingEventManager.cs
- FixedTextContainer.cs
- Translator.cs
- TaiwanLunisolarCalendar.cs
- SqlDataSourceConfigureSelectPanel.cs
- PublisherMembershipCondition.cs
- KeyboardDevice.cs
- SortableBindingList.cs
- Serializer.cs
- EntityDesignerUtils.cs
- ViewStateModeByIdAttribute.cs
- Emitter.cs
- PropertyMapper.cs
- RequestValidator.cs
- ErrorCodes.cs
- ObjectStorage.cs
- DynamicMethod.cs
- SystemTcpStatistics.cs
- SendMailErrorEventArgs.cs
- Point3DAnimation.cs
- ProfilePropertySettingsCollection.cs
- XmlSchema.cs
- RijndaelManaged.cs
- ActivityExecutionFilter.cs
- DispatcherHooks.cs
- RepeaterItemCollection.cs
- FormViewInsertEventArgs.cs
- CollectionExtensions.cs
- AncillaryOps.cs
- Padding.cs
- List.cs
- BuildProvider.cs
- RootProfilePropertySettingsCollection.cs
- SolidColorBrush.cs
- MimeMapping.cs
- WebPartCatalogAddVerb.cs
- Propagator.JoinPropagator.cs
- DataGridColumnCollection.cs
- TokenFactoryBase.cs
- Shape.cs
- UserPersonalizationStateInfo.cs
- Vector3D.cs
- RepeatEnumerable.cs
- EncoderReplacementFallback.cs
- Screen.cs