示例#1
0
        /// <summary>
        /// Create GCInfo panel
        /// </summary>
        internal Panel CreateGCInfoPanel(TextBox helpBox)
        {
            m_helpBox = helpBox;

            StackPanel reason = new StackPanel();
            {
                reason.AddTextBlock("GC Reason ", "GCReason", OnHelp, 3, 2);
                reason.AddButton("Select All", 60, ReasonSelectAll, 3, 2);

                m_inducedBlocking    = reason.AddCheckBox(true, "Induced Blocking", 3, 2, UpdateEvents);
                m_inducedNonblocking = reason.AddCheckBox(true, "Induced Nonblocking", 3, 0, UpdateEvents);
                m_lowMemory          = reason.AddCheckBox(true, "Low Memory", 3, 0, UpdateEvents);
                m_allocSOH           = reason.AddCheckBox(true, "Alloc SOH", 3, 0, UpdateEvents);
                m_AllocLOH           = reason.AddCheckBox(true, "Alloc LOH", 3, 0, UpdateEvents);
            }

            StackPanel gen = new StackPanel();
            {
                gen.AddTextBlock("Generation ", "Generation", OnHelp, 3, 2);
                gen.AddButton("Select All", 60, GenerationSelectAll, 3, 2);

                m_g0           = gen.AddCheckBox(true, "0", 3, 0, UpdateEvents);
                m_g1           = gen.AddCheckBox(true, "1", 3, 0, UpdateEvents);
                m_g2Blocking   = gen.AddCheckBox(true, "2(Blocking)", 3, 0, UpdateEvents);
                m_g2Background = gen.AddCheckBox(true, "2(Background)", 3, 0, UpdateEvents);
            }

            StackPanel controls = new StackPanel();

            controls.Background = Brushes.LightGray;
            controls.Width      = 240;
            controls.Children.Add(Toolbox.Stack(Orientation.Horizontal, reason, gen));

            m_grid                     = new DataGrid();
            m_grid.Background          = Brushes.LightGray;
            m_grid.MouseRightButtonUp += MouseRightButtonUp;
            m_grid.AutoGenerateColumns = false;
            m_grid.IsReadOnly          = true;

            // Columns
            m_grid.AddColumn(Toolbox.CreateTextBlock("GCIndex ", "GCIndex", OnHelp), "Number", true, Toolbox.CountFormatN0);
            m_grid.AddColumn(Toolbox.CreateTextBlock("Gen ", "GenNumberWithSuffix", OnHelp), "GenerationName");
            m_grid.AddColumn(Toolbox.CreateTextBlock("Reason ", "GCReason", OnHelp), "Reason");
            m_grid.AddColumn("PauseStart", "PauseStart", true, Toolbox.TimeFormat);
            m_grid.AddColumn("Pause", "PauseDuration", true, Toolbox.TimeFormat);

            m_grid.AddColumn("SizeBefore", "SizeBefore", true, Toolbox.MemoryFormatN0);
            m_grid.AddColumn("SizeAfter", "SizeAfter", true, Toolbox.MemoryFormatN0);

            m_grid.AddColumn("GCHandle", "GcHandleCount", true, Toolbox.CountFormatN0);
            m_grid.AddColumn("SyncBlock", "SyncBlockCount", true, Toolbox.CountFormatN0);
            m_grid.AddColumn("PinnedObj", "PinObjectCount", true, Toolbox.CountFormatN0);

            InitHelpText();

            return(Toolbox.DockTopLeft(null, controls, m_grid));
        }