コード例 #1
0
ファイル: HeapDiagram.cs プロジェクト: raffaeler/perfview-1
        private void RedrawDiagram()
        {
            int zoomWidth = (int)(m_graphWidth * m_widthZoom);

            Stopwatch watch = new Stopwatch();

            watch.Start();

            int threadCount = 0;

            if (m_timeline.IsChecked == true)
            {
                threadCount = 30;
            }

            DiagramData data = m_heapInfo.RenderDiagram(zoomWidth, m_graphHeight, m_diagramT0, m_diagramT1,
                                                        true, threadCount, m_drawMarker.IsChecked == true, false);

            if (m_rubberBand != null)
            {
                m_rubberBand.Detach();
            }

            m_diagramHolder = new VisualHolder();
            m_rubberBand    = new RubberBandAdorner(m_diagramHolder, m_diagramHolder.AddMessage, CreateContextMenu);

            m_diagramHolder.SetVisual(zoomWidth, m_graphHeight, data.visual, m_widthZoom, m_zoomSlider.Value, data.x0, data.x1);

            m_scrollViewer.Content    = m_diagramHolder;
            m_scrollViewer.MouseMove += OnMouseMove;

            {
                DiagramData legend = m_heapInfo.RenderLegend(LegendWidth, m_graphHeight, threadCount);

                VisualHolder legendHolder = new VisualHolder();
                legendHolder.SetVisual(LegendWidth, m_graphHeight, legend.visual, 1, 1, legend.x0, legend.x1);
                m_leftLegend.Children.Clear();
                m_leftLegend.Children.Add(legendHolder);
            }

            watch.Stop();

            m_statusBar.Log(String.Format("RadrawDiagram({0:N3} {1:N3}, {2}x{3} {4:N3} ms", m_diagramT0, m_diagramT1, zoomWidth, m_graphHeight, watch.Elapsed.TotalMilliseconds));
        }
コード例 #2
0
 private void AttachBehavior()
 {
     band         = new RubberBandAdorner(AssociatedObject);
     adornerLayer = AdornerLayer.GetAdornerLayer(AssociatedObject);
     adornerLayer.Add(band);
 }