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
- HtmlElementErrorEventArgs.cs
- Compiler.cs
- ValidationResult.cs
- EdmConstants.cs
- DataGridViewRowsRemovedEventArgs.cs
- Icon.cs
- DependencyPropertyHelper.cs
- SqlUdtInfo.cs
- PageFunction.cs
- List.cs
- PeerObject.cs
- MatrixUtil.cs
- WindowsFormsDesignerOptionService.cs
- DetailsViewPagerRow.cs
- DirectoryInfo.cs
- Lazy.cs
- TextUtf8RawTextWriter.cs
- NameSpaceEvent.cs
- SamlAuthorizationDecisionClaimResource.cs
- WorkflowRuntimeEndpoint.cs
- ToolStripDropDownItemDesigner.cs
- ReadWriteObjectLock.cs
- ExecutedRoutedEventArgs.cs
- MailAddress.cs
- PerformanceCounterManager.cs
- RelationshipConverter.cs
- GridViewRowCollection.cs
- ListViewUpdateEventArgs.cs
- SmtpNegotiateAuthenticationModule.cs
- InputEventArgs.cs
- RegularExpressionValidator.cs
- Graphics.cs
- Debug.cs
- StringValidatorAttribute.cs
- _Semaphore.cs
- ClassHandlersStore.cs
- XPathArrayIterator.cs
- SHA1CryptoServiceProvider.cs
- UiaCoreProviderApi.cs
- AppDomainFactory.cs
- SingleStorage.cs
- FixedSOMSemanticBox.cs
- RSAOAEPKeyExchangeFormatter.cs
- SoapExtensionTypeElement.cs
- WebChannelFactory.cs
- Context.cs
- ResourcesBuildProvider.cs
- PropertyCollection.cs
- LinkedResource.cs
- KeyedCollection.cs
- WinEventQueueItem.cs
- SafeReversePInvokeHandle.cs
- EntityProxyFactory.cs
- ChannelManager.cs
- Conditional.cs
- ListBox.cs
- NumberFormatInfo.cs
- StreamGeometry.cs
- ToolStrip.cs
- Button.cs
- SyntaxCheck.cs
- HttpCapabilitiesEvaluator.cs
- VerticalAlignConverter.cs
- SimpleBitVector32.cs
- ByteStorage.cs
- CryptoApi.cs
- RoutedEventValueSerializer.cs
- DBSqlParserTable.cs
- GridViewRow.cs
- OledbConnectionStringbuilder.cs
- SettingsPropertyValueCollection.cs
- EditorReuseAttribute.cs
- BuilderPropertyEntry.cs
- SoapHeaderAttribute.cs
- SafeArrayTypeMismatchException.cs
- InternalPermissions.cs
- SignatureToken.cs
- DebugController.cs
- MeasurementDCInfo.cs
- SimpleHandlerFactory.cs
- FixedFindEngine.cs
- XmlToDatasetMap.cs
- BindingContext.cs
- FixedStringLookup.cs
- AppDomainInstanceProvider.cs
- HttpRuntime.cs
- FlowDocumentPaginator.cs
- KeyTimeConverter.cs
- App.cs
- CheckBoxField.cs
- GenericWebPart.cs
- AdCreatedEventArgs.cs
- XmlSchemaSimpleTypeUnion.cs
- StaticContext.cs
- VirtualizedContainerService.cs
- ScalarOps.cs
- LogicalMethodInfo.cs
- ConnectionManagementElementCollection.cs
- Security.cs
- DataGridViewLayoutData.cs