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
- WindowsRichEdit.cs
- MimeParameter.cs
- InputScopeConverter.cs
- InlineObject.cs
- DefaultHttpHandler.cs
- ProgressBarRenderer.cs
- WindowsFormsHostPropertyMap.cs
- Point3DCollection.cs
- SurrogateEncoder.cs
- ServiceOperationParameter.cs
- CheckStoreFileValidityRequest.cs
- TextSerializer.cs
- EntityViewGenerationConstants.cs
- PasswordDeriveBytes.cs
- MetadataExporter.cs
- XmlText.cs
- versioninfo.cs
- BitmapMetadataBlob.cs
- AddingNewEventArgs.cs
- DataGridAddNewRow.cs
- XmlDocumentSerializer.cs
- HtmlInputReset.cs
- NumericUpDownAcceleration.cs
- RecognitionEventArgs.cs
- UriSection.cs
- GenericIdentity.cs
- DependsOnAttribute.cs
- FormatException.cs
- XpsViewerException.cs
- InitializerFacet.cs
- UniqueTransportManagerRegistration.cs
- StrongNameKeyPair.cs
- MenuItemBindingCollection.cs
- TracedNativeMethods.cs
- ISAPIRuntime.cs
- ColumnReorderedEventArgs.cs
- TextProperties.cs
- MarkupExtensionReturnTypeAttribute.cs
- DataGridCellAutomationPeer.cs
- FieldMetadata.cs
- AsymmetricKeyExchangeFormatter.cs
- xmlsaver.cs
- FtpWebRequest.cs
- InertiaTranslationBehavior.cs
- JoinSymbol.cs
- LeftCellWrapper.cs
- NameValueConfigurationCollection.cs
- SettingsSection.cs
- ProtocolsConfigurationEntry.cs
- SoapEnumAttribute.cs
- FontSource.cs
- ControlAdapter.cs
- Pen.cs
- ValueUnavailableException.cs
- Accessors.cs
- PageSetupDialog.cs
- ApplicationFileParser.cs
- SQLBytesStorage.cs
- XamlSerializerUtil.cs
- ResizingMessageFilter.cs
- DataGridViewMethods.cs
- RegionInfo.cs
- TypeNameConverter.cs
- SerializationAttributes.cs
- EditorZone.cs
- CodeArrayCreateExpression.cs
- FrameworkElementAutomationPeer.cs
- ExtendedProtectionPolicyElement.cs
- ClientConfigurationHost.cs
- Regex.cs
- ExpandedWrapper.cs
- DBConnection.cs
- UIElement.cs
- CompilationUtil.cs
- SimpleWorkerRequest.cs
- ListViewCancelEventArgs.cs
- URL.cs
- DbConnectionPoolIdentity.cs
- BooleanKeyFrameCollection.cs
- RequestCacheEntry.cs
- IImplicitResourceProvider.cs
- PointAnimationClockResource.cs
- GridLength.cs
- PrincipalPermission.cs
- MouseWheelEventArgs.cs
- MsmqMessageSerializationFormat.cs
- BufferedWebEventProvider.cs
- brushes.cs
- SessionEndedEventArgs.cs
- Focus.cs
- XmlImplementation.cs
- DispatchChannelSink.cs
- CodeTypeReferenceCollection.cs
- XmlILModule.cs
- ShaderEffect.cs
- CustomTokenProvider.cs
- SessionState.cs
- StrokeCollection2.cs
- ThreadExceptionDialog.cs
- ExpressionBindingCollection.cs