Fixes Missing tooltip on charts (high DPI / multi-monitor DPI issue)#320
Merged
erikdarlingdata merged 1 commit intoFeb 26, 2026
Conversation
erikdarlingdata
approved these changes
Feb 26, 2026
Owner
erikdarlingdata
left a comment
There was a problem hiding this comment.
Clean fix, good root cause analysis.
_chart.DisplayScale is captured once at first render and stays locked to the original monitor's DPI. VisualTreeHelper.GetDpi() live-queries the current monitor, so the coordinate math stays correct after dragging across monitors.
Safe on single-monitor setups — DpiScaleX/DpiScaleY will equal DisplayScale, so behavior is unchanged.
Worth noting that ScottPlot's own rendering still uses the stale DisplayScale internally (axis labels, plot layout, etc.), but that's a ScottPlot issue, not something for this PR to solve.
This was referenced Mar 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Fixes #319
Which component(s) does this affect?
How was this tested?
Before:
NoTooltip.mp4
After:
WithTooltip.mp4
Root cause:
_chart.DisplayScale is captured by ScottPlot at first render and stays fixed at the DPI of the monitor where the window opened. VisualTreeHelper.GetDpi() is a WPF live query that always reflects the DPI of the monitor the visual currently lives on, including after the window is dragged to another screen.
What happens without the fix (on a monitor with different DPI):
Checklist
dotnet build -c Debug)