lepoco / lepoco/wpfui

High-frequency drawing performance degrades as the window size increases

Open
#1,745 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C#
Stars
9.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

I use a high-frequency drawing control inside a WPF UI NavigationView page:
NavigationView → Frame → DynamicScrollViewer → ContentPresenter → Page
The drawing frame rate drops significantly as the window becomes larger, especially when maximized. This happens continuously on the same page and is unrelated to navigation transitions.
Could the NavigationViewContentPresenter, internal Frame, or DynamicScrollViewer cause the entire content area to be redrawn when a child control updates?
Is there a recommended way to host high-frequency drawing controls inside NavigationView while limiting redraws to the control’s own area?

To Reproduce

The same drawing control (Oxyplot) performs significantly better when it is hosted directly in a standard WPF Window or Grid, without WPF UI's NavigationView.And.. the most easy way to reproduce is testing the Page navigation. It performance degrades as the window size increases. Switching pages becomes noticeably slower when the window is maximized.

Expected behavior

Hope the performance issues can be fixed.

Screenshots
Image
OS version

Windows11 / Windows 10 LSTC

.NET version

dotnet10

WPF-UI NuGet version

4.3.0

Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Oxyplot case while resizing or maximizing the window and navigating between pages, then inspect the NavigationViewContentPresenter, internal Frame, DynamicScrollViewer, and ContentPresenter path. Done means the redraw or performance cause is identified and the reported degradation is resolved or supported hosting guidance is documented, with navigation and high-frequency drawing checked at different window sizes.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
desktop, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.