dotnet/wpf · error
SR.DocumentPageView_ParentNotDocumentPageHost
Error message
SR.DocumentPageView_ParentNotDocumentPageHost
What it means
ArgumentException (DocumentPageView_ParentNotDocumentPageHost) from DocumentPageHost.DisconnectPageVisual: the parent chain management encountered a page visual whose parent is not the expected DocumentPageHost, i.e. the page visual was re-parented externally, so disconnecting would corrupt the tree.
Solutions
- Let the document viewer manage page visual parenting; do not add page visuals to other trees
- Call the disconnect path only while the page host still owns the visual
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/documents/DocumentPageHost.cs:55 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of dotnet/wpf@81131a70a4 (2026-09-14).
Data as JSON: /api/errors/f0e64abf00d8002d.
Report an issue: GitHub.
Appendix: source
Thrown at src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/documents/DocumentPageHost.cs:55
//
// 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.DocumentPageView_ParentNotDocumentPageHost, nameof(pageVisual));
DocumentPageHost docPageHost = VisualTreeHelper.GetParent(pageVisualHost) as DocumentPageHost;
if (docPageHost == null)
throw new ArgumentException(SR.DocumentPageView_ParentNotDocumentPageHost, nameof(pageVisual));
docPageHost.PageVisual = null;
}
}
#endregion Internal Methods
//-------------------------------------------------------------------
//
// Internal Properties
//
//-------------------------------------------------------------------
#region Internal Properties
/// <summary>View on GitHub (pinned to 81131a70a4)