Skip to content

Commit 2c254dc

Browse files
author
Oystein Bjorke
authored
Merge pull request oxyplot#1282 from danpaul88/trackercontrol-recyclecontentcontrol
Change TrackerControl to reuse existing ContentControls
2 parents 9b8da48 + 0d8e0eb commit 2c254dc

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ All notable changes to this project will be documented in this file.
2828
- Place label below negative ColumnSeries (#1119)
2929
- Use PackageReference instead of packages.config
3030
- Migrated NUnit v2 to v3 and added test adapter
31+
- TrackerControl reuses existing ContentControl when a new hit tracker result uses the same template as the currently shown tracker (#1281)
3132

3233
### Deprecated
3334
- OxyPlot.WP8 package. Use OxyPlot.Windows instead (#996)

CONTRIBUTORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ csabar <rumancsabi@gmail.com>
2929
Curt Mullin <curt.mullin@gmail.com>
3030
Cyril Martin <cyril.martin.cm@gmail.com>
3131
Dan Aizenstros
32+
danpaul88 <danpaul88@users.noreply.github.com>
3233
darrelbrown
3334
David Laundav <davelaundav@gmail.com>
3435
David Wong <dvkwong0@gmail.com>

Source/OxyPlot.Wpf/PlotBase.cs

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ public abstract partial class PlotBase : Control, IPlotView
5151
/// </summary>
5252
private FrameworkElement currentTracker;
5353

54+
/// <summary>
55+
/// The current tracker template.
56+
/// </summary>
57+
private ControlTemplate currentTrackerTemplate;
58+
5459
/// <summary>
5560
/// The grid.
5661
/// </summary>
@@ -181,6 +186,7 @@ public void HideTracker()
181186
{
182187
this.overlays.Children.Remove(this.currentTracker);
183188
this.currentTracker = null;
189+
this.currentTrackerTemplate = null;
184190
}
185191
}
186192

@@ -341,14 +347,15 @@ public void ShowTracker(TrackerHitResult trackerHitResult)
341347
return;
342348
}
343349

344-
var tracker = new ContentControl { Template = trackerTemplate };
345-
346350
// ReSharper disable once RedundantNameQualifier
347-
if (!object.ReferenceEquals(tracker, this.currentTracker))
351+
if (!object.ReferenceEquals(trackerTemplate, this.currentTrackerTemplate))
348352
{
349353
this.HideTracker();
354+
355+
var tracker = new ContentControl { Template = trackerTemplate };
350356
this.overlays.Children.Add(tracker);
351357
this.currentTracker = tracker;
358+
this.currentTrackerTemplate = trackerTemplate;
352359
}
353360

354361
if (this.currentTracker != null)

0 commit comments

Comments
 (0)