コード例 #1
0
        private async void InitializeTest()
        {
            _grids.Add(testPanel);
            await this.WaitForLoadedAsync();
            var random = new Random();
            var colors = ColorExtensions.GetNamedColors();

            for (int i = 0; i < 20; i++)
            {
                var panel = _grids[random.Next(0, _grids.Count)];

                if (panel.ActualWidth - 10 <= 10 ||
                    panel.ActualHeight - 10 <= 10)
                {
                    i--;
                    continue;
                }

                var border = new Border();
                border.HorizontalAlignment = HorizontalAlignment.Left;
                border.VerticalAlignment = VerticalAlignment.Top;
                border.Width = random.Next((int)(panel.ActualWidth / 2), (int)(panel.ActualWidth - 10));
                border.Height = random.Next((int)(panel.ActualHeight / 2), (int)(panel.ActualHeight - 10));
                border.Margin =
                    new Thickness(
                        random.Next(0, (int)(panel.ActualWidth - border.Width) + 1),
                        random.Next(0, (int)(panel.ActualHeight - border.Height) + 1),
                        0,
                        0);
                border.Background = new SolidColorBrush(colors[random.Next(colors.Count)]);
                var childGrid = new Grid {VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch};
                _grids.Add(childGrid);
                border.Child = childGrid;
                panel.Children.Add(border);
                var tb =
                    new TextBlock
                    {
                        Text = string.Format("Panel {0}", i + 1),
                        HorizontalAlignment = HorizontalAlignment.Left,
                        VerticalAlignment = VerticalAlignment.Top
                    };
                childGrid.Children.Add(tb);
                await childGrid.WaitForNonZeroSizeAsync();
            }

            DC.ShowVisualTree(_grids[random.Next(_grids.Count)]);
            DC.Expand();
        }