void UpdatePositions() { if (IsVisible && Pairing != null && FpTemplate != null) { var minutiae = from index in Enumerable.Range(0, Pairing.Count) let pair = Pairing.GetPair(index) select MatchSide == MatchSide.Probe ? pair.Pair.Probe : pair.Pair.Candidate; var dpiScaling = FpTemplate.OriginalDpi / 500.0; var points = from minutia in minutiae where minutia < FpTemplate.Minutiae.Count let position = FpTemplate.Minutiae[minutia].Position select new Point() { X = dpiScaling * position.X - 5, Y = FpTemplate.OriginalHeight - 1 - dpiScaling * position.Y - 5 }; SetValue(PositionsProperty, points.ToList()); } else { SetValue(PositionsProperty, null); } }