private void AddItemsButton_Click(object sender, RoutedEventArgs e) { var columns = 50; var res = new[] { "1.png", "2.png", "3.png" }; var rnd = new Random(); var offset = dcvs.Items.Count; var objs = new List <CanvasItem>(); for (int i = offset; i < offset + 10000; i++) { var row = i / columns; var col = i % columns; var obj = new ImageCanvasItem(10 + col * 40, 100 + row * 40, 32, 32, LoadImageResource(res[rnd.Next(0, res.Length)])); dcvs.Items.Add(obj); //if (objs.Count > 0 && rnd.NextDouble() < 0.2) //{ // var anotherObj = objs[rnd.Next(Math.Max(0, objs.Count - 10), objs.Count)]; // var conn = new Connection(obj.Connectors[rnd.Next(0, obj.Connectors.Count)], // anotherObj.Connectors[rnd.Next(0, anotherObj.Connectors.Count)]); // dcvs.Items.Add(conn); //} objs.Add(obj); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { var g1 = new ImageCanvasItem(10, 10, 32, 32, LoadImageResource("1.png")); var g2 = new ImageCanvasItem(50, 10, 32, 32, LoadImageResource("2.png")) { Angle = 90 }; var myG1 = new MyEntity { Bounds = new Rect(100, 10, 20, 20) }; var bumpingItem = new ImageCanvasItem(50, 50, 32, 32, LoadImageResource("3.png")); dcvs.Items.AddRange(new ICanvasItem[] { g1, g2, bumpingItem, myG1 }); dcvs.Items.Add(new PolyLineCanvasItem(new[] { new Point(0, 0), new Point(50, 25), new Point(30, 50), })); dcvs.Items.Add(new PolyLineCanvasItem(new[] { new Point(20, 0), new Point(60, 50), })); var aniTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(10), }; var rnd = new Random(); aniTimer.Tick += (_, e1) => { bumpingItem.Left += (rnd.NextDouble() - 0.5) * 2; bumpingItem.Top += (rnd.NextDouble() - 0.5) * 2; }; //aniTimer.Start(); var statTimer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(500), }; statTimer.Tick += (_, e1) => { #if DEBUG RenderedChildrenCounter.Text = "" + dcvs.RenderedChildrenCount; #endif FocusLabel.Text = FocusManager.GetFocusedElement(this)?.ToString(); }; statTimer.Start(); }