private PathGeometry OptPathGemotry(IssueGroupItem numberGroup) { double itemWidth = 20; double itemHeight = 15; var firstItem = numberGroup.Values.FirstOrDefault(); if (firstItem != null) { PathSegmentCollection segments = new PathSegmentCollection(); double firstX = itemWidth / 2.0; double firstY = firstItem.Value * 12 + itemHeight / 2.0; Point first = new Point(firstX, firstY); for (int j = 1; j < numberGroup.Values.Count; j++) { var numberItem = numberGroup.Values[j]; double x = itemWidth / 2.0 + itemWidth * j; double y = numberItem.Value * 12 + itemHeight / 2.0; Point point = new Point(x, y); segments.Add(new LineSegment { Point = point }); } PathGeometry path = new PathGeometry { Figures = new PathFigureCollection { new PathFigure { StartPoint = first, Segments = segments } } }; return(path); } return(null); }
private void RefreshIssueDateItem(IssueItem issueItem) { int date = issueItem.Date; var dateItem = mListGroupItems.FirstOrDefault(d => d.Date == date); if (dateItem == null) { return; } string serial = issueItem.Serial; var dataItem = mListLostData.FirstOrDefault(l => l.Serial == serial); if (dataItem == null) { return; } issueItem.D1Height = 120 * 1.0 / 10.0 * issueItem.D1 + 10; issueItem.D2Height = 120 * 1.0 / 10.0 * issueItem.D2 + 10; issueItem.D3Height = 120 * 1.0 / 10.0 * issueItem.D3 + 10; issueItem.D4Height = 120 * 1.0 / 10.0 * issueItem.D4 + 10; issueItem.D5Height = 120 * 1.0 / 10.0 * issueItem.D5 + 10; dateItem.Issues.Add(issueItem); int number = 1; var numberGroup = dateItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; dateItem.Groups.Add(numberGroup); } IssueNumberItem numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D1; numberGroup.Values.Add(numberItem); number = 2; numberGroup = dateItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; dateItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D2; numberGroup.Values.Add(numberItem); number = 3; numberGroup = dateItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; dateItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D3; numberGroup.Values.Add(numberItem); number = 4; numberGroup = dateItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; dateItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D4; numberGroup.Values.Add(numberItem); number = 5; numberGroup = dateItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; dateItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D5; numberGroup.Values.Add(numberItem); }
private void InitIssueDateItems() { mListGroupItems.Clear(); if (PageParent == null) { return; } var listIssuetems = PageParent.ListIssueItems; if (listIssuetems == null) { return; } var groups = listIssuetems.GroupBy(l => l.Date); foreach (var group in groups) { int date = group.Key; IssueDateItem groupItem = new IssueDateItem(); groupItem.Date = date; for (int i = group.Count() - 1; i >= 0; i--) { var issueItem = group.ToList()[i]; issueItem.D1Height = 120 * 1.0 / 10.0 * issueItem.D1 + 10; issueItem.D2Height = 120 * 1.0 / 10.0 * issueItem.D2 + 10; issueItem.D3Height = 120 * 1.0 / 10.0 * issueItem.D3 + 10; issueItem.D4Height = 120 * 1.0 / 10.0 * issueItem.D4 + 10; issueItem.D5Height = 120 * 1.0 / 10.0 * issueItem.D5 + 10; groupItem.Issues.Add(issueItem); int number = 1; var numberGroup = groupItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; groupItem.Groups.Add(numberGroup); } IssueNumberItem numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D1; numberGroup.Values.Add(numberItem); number = 2; numberGroup = groupItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; groupItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D2; numberGroup.Values.Add(numberItem); number = 3; numberGroup = groupItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; groupItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D3; numberGroup.Values.Add(numberItem); number = 4; numberGroup = groupItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; groupItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D4; numberGroup.Values.Add(numberItem); number = 5; numberGroup = groupItem.Groups.FirstOrDefault(n => n.Number == number); if (numberGroup == null) { numberGroup = new IssueGroupItem(); numberGroup.Number = number; groupItem.Groups.Add(numberGroup); } numberItem = new IssueNumberItem(); numberItem.Number = number; numberItem.Value = issueItem.D5; numberGroup.Values.Add(numberItem); } mListGroupItems.Add(groupItem); } }