Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / MS / Internal / documents / DocumentPageHost.cs / 1 / 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. //---------------------------------------------------------------------------- // // 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
- EncryptedXml.cs
- QilReference.cs
- HtmlImage.cs
- WsatConfiguration.cs
- ThicknessAnimationBase.cs
- TouchesCapturedWithinProperty.cs
- ClientScriptManager.cs
- SystemFonts.cs
- SqlDependencyUtils.cs
- EntityCommandCompilationException.cs
- NamespaceCollection.cs
- PkcsMisc.cs
- PrimitiveXmlSerializers.cs
- HttpProtocolReflector.cs
- NetDispatcherFaultException.cs
- TextEditor.cs
- IisTraceListener.cs
- ListenerSessionConnection.cs
- FragmentQueryKB.cs
- MetadataUtilsSmi.cs
- ActiveXContainer.cs
- MaterializeFromAtom.cs
- GridSplitterAutomationPeer.cs
- BuildProviderUtils.cs
- ResourceType.cs
- AtomServiceDocumentSerializer.cs
- EndpointDiscoveryElement.cs
- DataGridHelper.cs
- BufferedGraphicsManager.cs
- BoolLiteral.cs
- ExternalCalls.cs
- FieldToken.cs
- BindingBase.cs
- SystemColorTracker.cs
- LeaseManager.cs
- WebBrowserDocumentCompletedEventHandler.cs
- DataGridrowEditEndingEventArgs.cs
- TcpChannelHelper.cs
- MinMaxParagraphWidth.cs
- ApplicationServicesHostFactory.cs
- Array.cs
- mda.cs
- OrderByExpression.cs
- TypeEnumerableViewSchema.cs
- Utils.cs
- XappLauncher.cs
- EventLogPermissionHolder.cs
- ZoomingMessageFilter.cs
- SqlDesignerDataSourceView.cs
- ConfigurationSectionHelper.cs
- RightsManagementEncryptedStream.cs
- GridItemCollection.cs
- TogglePattern.cs
- StreamHelper.cs
- MethodToken.cs
- BaseDataListActionList.cs
- DecoderFallback.cs
- SQLDecimal.cs
- SQLBytesStorage.cs
- _HeaderInfoTable.cs
- DbParameterCollectionHelper.cs
- UnsignedPublishLicense.cs
- ListItem.cs
- BrowserTree.cs
- PersonalizationStateInfo.cs
- ToolStripDropDownButton.cs
- Pair.cs
- CompressedStack.cs
- GeneralTransformGroup.cs
- XmlDataImplementation.cs
- CheckBoxRenderer.cs
- Merger.cs
- Application.cs
- Cursors.cs
- TypedElement.cs
- LayoutTableCell.cs
- sqlnorm.cs
- BooleanExpr.cs
- AuthenticatingEventArgs.cs
- ReadWriteSpinLock.cs
- DateTimeUtil.cs
- XPathNodeIterator.cs
- OleDbWrapper.cs
- DrawingGroupDrawingContext.cs
- ProfileSection.cs
- ThemeDirectoryCompiler.cs
- AppDomainCompilerProxy.cs
- MenuItemStyleCollection.cs
- TypeDescriptionProviderAttribute.cs
- MarkupCompilePass1.cs
- ThreadInterruptedException.cs
- XmlParserContext.cs
- SimpleBitVector32.cs
- InstanceData.cs
- _TimerThread.cs
- HttpSysSettings.cs
- CompletionCallbackWrapper.cs
- AppearanceEditorPart.cs
- AxisAngleRotation3D.cs
- LOSFormatter.cs