Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / documents / DocumentPageHost.cs / 2 / DocumentPageHost.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: DocumentPageHost.cs // // Description: Provides a view port for a page of content for a DocumentPage. // //--------------------------------------------------------------------------- using System; using System.Windows; // UIElement using System.Windows.Media; // Visual namespace MS.Internal.Documents { ////// Provides a view port for a page of content for a DocumentPage. /// internal class DocumentPageHost : FrameworkElement { //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- #region Constructors ////// Create an instance of a DocumentPageHost. /// internal DocumentPageHost() : base() { } #endregion Constructors //-------------------------------------------------------------------- // // Internal Methods // //------------------------------------------------------------------- #region Internal Methods internal static void DisconnectPageVisual(Visual pageVisual) { // There might be a case where a visual associated with a page was // inserted to a visual tree before. It got removed later, but GC did not // destroy its parent yet. To workaround this case always check for the parent // of page visual and disconnect it, when necessary. Visual currentParent = VisualTreeHelper.GetParent(pageVisual) as Visual; if (currentParent != null) { ContainerVisual pageVisualHost = currentParent as ContainerVisual; if (pageVisualHost == null) throw new ArgumentException(SR.Get(SRID.DocumentPageView_ParentNotDocumentPageHost), "pageVisual"); DocumentPageHost docPageHost = VisualTreeHelper.GetParent(pageVisualHost) as DocumentPageHost; if (docPageHost == null) throw new ArgumentException(SR.Get(SRID.DocumentPageView_ParentNotDocumentPageHost), "pageVisual"); docPageHost.PageVisual = null; } } #endregion Internal Methods //-------------------------------------------------------------------- // // Internal Properties // //-------------------------------------------------------------------- #region Internal Properties ////// Root of visual subtree hosted by this DocumentPageHost. /// internal Visual PageVisual { get { return _pageVisual; } set { ContainerVisual pageVisualHost; if (_pageVisual != null) { pageVisualHost = VisualTreeHelper.GetParent(_pageVisual) as ContainerVisual; Invariant.Assert(pageVisualHost != null); pageVisualHost.Children.Clear(); this.RemoveVisualChild(pageVisualHost); } _pageVisual = value; if (_pageVisual != null) { pageVisualHost = new ContainerVisual(); this.AddVisualChild(pageVisualHost); pageVisualHost.Children.Add(_pageVisual); pageVisualHost.SetValue(FlowDirectionProperty, FlowDirection.LeftToRight); } } } ////// Internal cached offset. /// internal Point CachedOffset; #endregion Internal Properties #region VisualChildren ////// Derived class must implement to support Visual children. The method must return /// the child at the specified index. Index must be between 0 and GetVisualChildrenCount-1. /// /// By default a Visual does not have any children. /// /// Remark: /// During this virtual call it is not valid to modify the Visual tree. /// protected override Visual GetVisualChild(int index) { if (index != 0 || _pageVisual == null) { throw new ArgumentOutOfRangeException("index", index, SR.Get(SRID.Visual_ArgumentOutOfRange)); } return VisualTreeHelper.GetParent(_pageVisual) as Visual; } ////// Derived classes override this property to enable the Visual code to enumerate /// the Visual children. Derived classes need to return the number of children /// from this method. /// /// By default a Visual does not have any children. /// /// Remark: During this virtual method the Visual tree must not be modified. /// protected override int VisualChildrenCount { get { return _pageVisual != null ? 1 : 0; } } #endregion VisualChildren private Visual _pageVisual; } } // 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
- ClassHandlersStore.cs
- TransformProviderWrapper.cs
- hresults.cs
- WebEventCodes.cs
- FileIOPermission.cs
- ArgumentValidation.cs
- DataList.cs
- CacheModeConverter.cs
- XmlObjectSerializerWriteContextComplex.cs
- SecurityVersion.cs
- XmlReader.cs
- AuthenticationManager.cs
- DoubleKeyFrameCollection.cs
- TemplateAction.cs
- IntegrationExceptionEventArgs.cs
- OdbcParameterCollection.cs
- Interlocked.cs
- UnmanagedMemoryStream.cs
- InputScopeConverter.cs
- TextTreeTextNode.cs
- WorkflowMarkupSerializationProvider.cs
- XmlSchemaProviderAttribute.cs
- DataGridPageChangedEventArgs.cs
- SqlDataAdapter.cs
- AbsoluteQuery.cs
- OleDbConnection.cs
- WriteFileContext.cs
- TrustLevelCollection.cs
- DataGridViewRowEventArgs.cs
- ServicePoint.cs
- XPathScanner.cs
- MissingSatelliteAssemblyException.cs
- Permission.cs
- COM2PropertyDescriptor.cs
- ToolStripDropDownClosedEventArgs.cs
- ManifestBasedResourceGroveler.cs
- AdCreatedEventArgs.cs
- UserPreferenceChangingEventArgs.cs
- RunWorkerCompletedEventArgs.cs
- ItemsChangedEventArgs.cs
- DbProviderSpecificTypePropertyAttribute.cs
- FlowLayoutSettings.cs
- TypeDescriptor.cs
- CodeBinaryOperatorExpression.cs
- XmlSchemaAttribute.cs
- SqlGenericUtil.cs
- IsolatedStorageException.cs
- baseaxisquery.cs
- ElasticEase.cs
- AttributeInfo.cs
- HtmlElementEventArgs.cs
- BitmapEffectInputData.cs
- StrokeSerializer.cs
- SpeechSeg.cs
- TextEditorSelection.cs
- XmlByteStreamWriter.cs
- ResourcePermissionBase.cs
- EdmPropertyAttribute.cs
- cookiecollection.cs
- EmptyEnumerator.cs
- SuppressIldasmAttribute.cs
- DataGridState.cs
- BindMarkupExtensionSerializer.cs
- TableProviderWrapper.cs
- _TransmitFileOverlappedAsyncResult.cs
- ThumbButtonInfoCollection.cs
- SqlPersonalizationProvider.cs
- ConfigViewGenerator.cs
- DisableDpiAwarenessAttribute.cs
- TrustLevelCollection.cs
- UrlPath.cs
- GridViewHeaderRowPresenter.cs
- MatrixIndependentAnimationStorage.cs
- AnimationClock.cs
- MaskedTextBoxDesigner.cs
- RepeaterItemCollection.cs
- IPipelineRuntime.cs
- DbRetry.cs
- FixedSOMTable.cs
- SchemaImporterExtension.cs
- ServiceContractGenerationContext.cs
- DataStorage.cs
- ZoneMembershipCondition.cs
- CurrentChangedEventManager.cs
- XmlLoader.cs
- COSERVERINFO.cs
- BaseCollection.cs
- DiscoveryInnerClientAdhocCD1.cs
- Touch.cs
- DESCryptoServiceProvider.cs
- ImageSourceConverter.cs
- BrushValueSerializer.cs
- LockedAssemblyCache.cs
- SchemaTableOptionalColumn.cs
- XmlNodeChangedEventArgs.cs
- XPathSingletonIterator.cs
- FlowDocumentScrollViewer.cs
- wgx_exports.cs
- embossbitmapeffect.cs
- Timeline.cs