new LineSegment(new Point(_proportionSize, 0), true),
new LineSegment(new Point(-_proportionSize/2, -_proportionSize), true)]
}]
},
Fill = CoordinateSystemColor
};
_canvas.Children.Add(YAeeow);
_canvas.Children.Add(XAeeow);
Canvas.SetTop(this.YAeeow, _yEndpoint.Y);
Canvas.SetLeft(this.YAeeow, _yEndpoint.X);
Canvas.SetTop(this.XAeeow, _xEndpoint.Y);
Canvas.SetLeft(this.XAeeow, _xEndpoint.X);
}
private void AddCalloutLine()
{
//添加Y轴标注线和标注值
AddYCalloutLines();
//添加X轴标注线和标注值和选择点
AddXCalloutLinesAndSelectEllipses();
}
private void AddYCalloutLines()
{
for (int i = 1; i < YCollection.Count + 1; i++)
{
var canvasTop = GetActualCanvasTop(i);
//添加标注线和标注值
var line = new Line() { Stroke = CalloutLineColor, StrokeThickness = 1, X1 = 0, Y1 = 0, X2 = _proportionSize, Y2 = 0 };
var text = new TextBlock() { Text = YCollection[i - 1].ToString(), RenderTransformOrigin = new(0.5, 0.5), RenderTransform = new TranslateTransform() { X = -12, Y = -8 } };
Canvas.SetLeft(line, _originPoint.X);
Canvas.SetTop(line, canvasTop);
Canvas.SetLeft(text, _originPoint.X);
Canvas.SetTop(text, canvasTop);
_canvas.Children.Add(line);
_canvas.Children.Add(text);
}
}
private void AddXCalloutLinesAndSelectEllipses()
{
for (int i = 1; i < XCollection.Count + 1; i++)
{
var currentValue = XCollection[i - 1];
var cancasLeft = GetActualCanvasLeft(i);
var line = new Line() { Stroke = CalloutLineColor, StrokeThickness = 1, X1 = 0, Y1 = 0, X2 = 0, Y2 = -_proportionSize };
var textBlock = new TextBlock() { Text = currentValue.ToString(), RenderTransformOrigin = new(0.5, 0.5), RenderTransform = new TranslateTransform() { X = -5, Y = 5 } };
Canvas.SetLeft(line, cancasLeft);
Canvas.SetTop(line, _originPoint.Y);
Canvas.SetLeft(textBlock, cancasLeft);
Canvas.SetTop(textBlock, _originPoint.Y);
_canvas.Children.Add(textBlock);
_canvas.Children.Add(line);
//添加选择点
var selectEllipse = new Ellipse
{
Width = 14,
Height = 14,
Fill = SelectElementColor,
RenderTransformOrigin = new Point(0.5, 0.5),
RenderTransform = _transform_chekEllipse,
};
selectEllipse.AddHandler(MouseDownEvent, new MouseButtonEventHandler(SelectEllipse_MouseDown));
selectEllipse.AddHandler(MouseMoveEvent, new MouseEventHandler(SelectEllipse_Control_MouseMove));
selectEllipse.AddHandler(MouseUpEvent, new MouseButtonEventHandler(SelectEllipse_Control_MouseUp));
X_YResultCollection ??= new ObservableDictionary<double, double>();