示例#1
0
        private void RefreshView()
        {
            double size = Math.Min(ActualHeight - Grid.RowDefinitions[0].ActualHeight - Padding.Bottom - Padding.Top, ActualWidth - Padding.Left - Padding.Right);

            if (size < 0)
            {
                return;
            }
            Canvas.Width  = size;
            Canvas.Height = size;
            Canvas.InvalidateVisual();
            BackgroundPiece.Radius      = size / 2;
            BackgroundPiece.InnerRadius = BackgroundPiece.Radius * RingWidthFactor;
            BackgroundPiece.InvalidateVisual();
            Canvas.SetLeft(BackgroundPiece, size / 2);
            Canvas.SetTop(BackgroundPiece, size / 2);
            foreach (PiePiece item in PieList)
            {
                item.Radius      = size / 2;
                item.InnerRadius = item.Radius * RingWidthFactor;
                item.InvalidateVisual();
                Canvas.SetLeft(item, size / 2);
                Canvas.SetTop(item, size / 2);
            }
            RefreshValueText();
        }