コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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();
        }