if (IsConnectLine != true) { int circlewidth = 30; int adjustduetowindowwidth = 90; EllipseInfo einfo = new EllipseInfo(); Ellipse ellipse = new Ellipse() { //Margin = new Thickness(A.X - (circlewidth / 2), A.Y- 90 - (circlewidth / 2), 0, 0), Margin = new Thickness(A.X - (circlewidth / 2), A.Y - adjustduetowindowwidth - (circlewidth / 2), 0, 0), Stroke = new SolidColorBrush(Color.FromRgb(255, 0, 0)), StrokeThickness = circlewidth, Width = circlewidth, Fill = Brushes.AliceBlue }; einfo.circle = ellipse; einfo.X = Convert.ToDouble(A.X.ToString()); einfo.Y = Convert.ToDouble((A.Y - adjustduetowindowwidth).ToString()); einfo.oriX = Convert.ToDouble(A.X.ToString()); einfo.oriY = Convert.ToDouble((A.Y - adjustduetowindowwidth).ToString()); einfo.Direction = 0; einfo.NumberOfRotation = 0; einfo.running = 1; ellipse.MouseDown += ellipse_MouseDown; ellipse.MouseDown += ellipse_MouseUp; ellipse.MouseMove += ellipse_MouseMove; if (EllipseList.Count > 0) { einfo.angle = 0;// Math.Atan(Math.Abs(einfo.Y - EllipseList[EllipseList.Count - 1].oriY) / Math.Abs(einfo.X - EllipseList[EllipseList.Count - 1].oriX)); einfo.oriangle = Math.Atan(einfo.Y - EllipseList[EllipseList.Count - 1].oriY) / (einfo.X - EllipseList[EllipseList.Count - 1].oriX); } clearLinesColor(); ellipse1 = ellipse; ellipse.Tag = ellipse; ellipseid = ellipseid + 1; einfo.Id = ellipseid; Canvas.SetZIndex(ellipse, maxzindex - ellipseid); myCanvas.Children.Add(ellipse); EllipseList.Add(einfo);
Here can not change color
for(int i=0; i<=5; ++i) { this.Dispatcher.Invoke((Action)(() => { EllipseList[i].circle.Stroke = new SolidColorBrush(Color.FromRgb(0, 255, 0)); EllipseList[i].circle.Fill = Brushes.AliceBlue; //EllipseList[i].circle.Stroke = blue; myCanvas.UpdateLayout(); })); Thread.Sleep(1000); this.Dispatcher.Invoke((Action)(() => { EllipseList[i].circle.Stroke = new SolidColorBrush(Color.FromRgb(255, 0, 0)); EllipseList[i].circle.Fill = Brushes.AliceBlue; //EllipseList[i].circle.Stroke = red; myCanvas.UpdateLayout(); })); }
MEALY