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
- WebBrowser.cs
- TableDesigner.cs
- LayoutEvent.cs
- loginstatus.cs
- ConstraintCollection.cs
- errorpatternmatcher.cs
- TokenBasedSet.cs
- QilName.cs
- TreeNodeConverter.cs
- RangeValuePatternIdentifiers.cs
- WebServiceReceive.cs
- IgnoreDeviceFilterElement.cs
- HScrollBar.cs
- COM2TypeInfoProcessor.cs
- DetailsViewDeletedEventArgs.cs
- ClientSession.cs
- ValidationHelper.cs
- OutputCacheModule.cs
- DataServiceContext.cs
- WebPartConnectionsConnectVerb.cs
- WebPartVerbCollection.cs
- ProvidersHelper.cs
- ImageDrawing.cs
- ListMarkerLine.cs
- Adorner.cs
- DataServiceQueryProvider.cs
- CompiledRegexRunnerFactory.cs
- AttributeData.cs
- GradientStop.cs
- UserPersonalizationStateInfo.cs
- Table.cs
- ToolStripItemClickedEventArgs.cs
- XPathPatternBuilder.cs
- InternalCache.cs
- Parser.cs
- SmtpMail.cs
- DataGridViewUtilities.cs
- StrokeNodeOperations2.cs
- HierarchicalDataBoundControlAdapter.cs
- ResourceDescriptionAttribute.cs
- XamlBrushSerializer.cs
- XmlSchemaCollection.cs
- AsymmetricCryptoHandle.cs
- XamlFigureLengthSerializer.cs
- PieceNameHelper.cs
- SvcMapFileSerializer.cs
- RoleGroup.cs
- ReliableSession.cs
- FrameworkContentElement.cs
- ExtenderHelpers.cs
- DelimitedListTraceListener.cs
- HostingPreferredMapPath.cs
- XmlReader.cs
- util.cs
- PlanCompiler.cs
- ObjectListComponentEditor.cs
- Symbol.cs
- _NegotiateClient.cs
- SimpleHandlerBuildProvider.cs
- FlowDocumentView.cs
- GreaterThan.cs
- ActivityExecutionWorkItem.cs
- BuildManagerHost.cs
- HtmlSelect.cs
- SinglePhaseEnlistment.cs
- RequestQueue.cs
- DependentList.cs
- InitializingNewItemEventArgs.cs
- KeySplineConverter.cs
- HierarchicalDataTemplate.cs
- Permission.cs
- RadialGradientBrush.cs
- SiteMapNodeItem.cs
- CompilerResults.cs
- Exceptions.cs
- SafeFileHandle.cs
- HtmlLiteralTextAdapter.cs
- GenericXmlSecurityToken.cs
- SiteMapDataSourceView.cs
- BindingContext.cs
- SurrogateEncoder.cs
- SafeEventLogWriteHandle.cs
- ColorConvertedBitmap.cs
- TextEditorLists.cs
- TableHeaderCell.cs
- ExtendedProtectionPolicyTypeConverter.cs
- EventData.cs
- sqlmetadatafactory.cs
- SqlDataSourceFilteringEventArgs.cs
- RowUpdatingEventArgs.cs
- SiteMapNodeCollection.cs
- DPTypeDescriptorContext.cs
- XmlEncodedRawTextWriter.cs
- ScriptMethodAttribute.cs
- TextTabProperties.cs
- RawKeyboardInputReport.cs
- GridView.cs
- CreatingCookieEventArgs.cs
- NamedElement.cs
- RenderingBiasValidation.cs