Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- DropShadowBitmapEffect.cs
- GifBitmapEncoder.cs
- CultureInfo.cs
- ResourceReferenceExpressionConverter.cs
- TwoPhaseCommitProxy.cs
- GenericEnumerator.cs
- LocatorBase.cs
- CfgParser.cs
- UpdatePanelTriggerCollection.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- XmlNavigatorStack.cs
- SqlDataSourceEnumerator.cs
- odbcmetadatacollectionnames.cs
- ButtonRenderer.cs
- XmlAnyElementAttributes.cs
- MetadataArtifactLoaderCompositeFile.cs
- CriticalFinalizerObject.cs
- DataShape.cs
- StrongNameKeyPair.cs
- HtmlTableRowCollection.cs
- SimpleWorkerRequest.cs
- PixelFormat.cs
- UnsafePeerToPeerMethods.cs
- XmlCountingReader.cs
- ExpressionBuilderCollection.cs
- SymLanguageType.cs
- ContentFileHelper.cs
- MimeWriter.cs
- NumberFunctions.cs
- SimpleHandlerBuildProvider.cs
- TabletDeviceInfo.cs
- ToggleButtonAutomationPeer.cs
- XPathConvert.cs
- InvokeBinder.cs
- ListViewSortEventArgs.cs
- ShapeTypeface.cs
- SchemaLookupTable.cs
- InvalidOperationException.cs
- AppSettingsSection.cs
- KeyManager.cs
- ThemeDirectoryCompiler.cs
- JournalEntry.cs
- FirstMatchCodeGroup.cs
- XPathDocumentIterator.cs
- DataTemplateSelector.cs
- SafeBitVector32.cs
- HashHelper.cs
- PersistenceContextEnlistment.cs
- BufferedGraphics.cs
- SchemaTableColumn.cs
- ActivityExecutionContextCollection.cs
- TextBox.cs
- GridViewPageEventArgs.cs
- SocketPermission.cs
- RegexRunner.cs
- DataServiceExpressionVisitor.cs
- TemplateControlCodeDomTreeGenerator.cs
- UnitySerializationHolder.cs
- SqlWriter.cs
- RealizedColumnsBlock.cs
- Wow64ConfigurationLoader.cs
- CodeCatchClauseCollection.cs
- PreProcessInputEventArgs.cs
- CounterSetInstance.cs
- FormsAuthenticationModule.cs
- Section.cs
- RootDesignerSerializerAttribute.cs
- TemplateBuilder.cs
- DataFieldEditor.cs
- VisualBasicImportReference.cs
- ImageCodecInfoPrivate.cs
- SamlConstants.cs
- SspiSecurityTokenParameters.cs
- WhitespaceRuleReader.cs
- Win32Native.cs
- RootBrowserWindowAutomationPeer.cs
- AppDomainAttributes.cs
- OperationParameterInfo.cs
- FileFormatException.cs
- CapabilitiesSection.cs
- ImportCatalogPart.cs
- QilXmlReader.cs
- AutoCompleteStringCollection.cs
- CounterSample.cs
- SHA512.cs
- SequenceNumber.cs
- TickBar.cs
- OracleBoolean.cs
- CssClassPropertyAttribute.cs
- StoreConnection.cs
- ClientSideQueueItem.cs
- AsmxEndpointPickerExtension.cs
- TimeEnumHelper.cs
- FixUpCollection.cs
- OwnerDrawPropertyBag.cs
- AppDomainUnloadedException.cs
- MessageContractAttribute.cs
- DefaultSerializationProviderAttribute.cs
- ADMembershipUser.cs
- Size3D.cs