private void add(TraceEffect sender) { traces.Add(new Trace(sender)); if (traces.GroupBy(i => i.Index).All(i => i.Last().Released)) { Task.Run(() => Finished?.Invoke(this, new TraceEventArgs { Traces = traces })); traces.Clear(); } }
public void Layout(double radius, List <Point> traces) { content.Children.Clear(); for (var i = 0; i < traces.Count; i++) { var item = traces[i]; var eff = new TraceEffect { Index = i, Width = radius * 2, Margin = new Thickness { Left = item.X - radius, Top = item.Y - radius }, }; content.Children.Add(eff); } }
private void add(TraceEffect sender) { traces.Add(new Trace(sender)); if (traces.GroupBy(i => i.Index).All(i => i.Last().Released)) { if (Async) { Finished?.BeginInvoke(this, new TraceEventArgs { Traces = traces }, null, null); } else { Finished?.Invoke(this, new TraceEventArgs { Traces = traces }); } traces = new List <ITrace>(); } }