private static void OnEllipseWidthChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { MetroProgressBar_LTRE mProgressBar = (MetroProgressBar_LTRE)sender; //注意:当前还没有控件的 ActualWidth 值 mProgressBar.MarginConvertRatio_Start = 0D; //(mProgressBar.EllipseWidth * 4 + mProgressBar.EllipseSpacing * 3) / mProgressBar.ActualWidth; mProgressBar.MarginConvertRatio_MiddleLeft = (mProgressBar.ActualWidth - mProgressBar.EllipseWidth * 4 - mProgressBar.EllipseSpacing * 3) / 2 / mProgressBar.ActualWidth; mProgressBar.MarginConvertRatio_MiddleRight = (mProgressBar.ActualWidth + mProgressBar.EllipseWidth * 4 + mProgressBar.EllipseSpacing * 3) / 2 / mProgressBar.ActualWidth; mProgressBar.MarginConvertRatio_End = 1D; }
private static void OnEllipseSpacingChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { MetroProgressBar_LTRE mProgressBar = (MetroProgressBar_LTRE)sender; double ellipseLeftMargin_1 = 0D; // ((double)e.NewValue + mProgressBar.EllipseWidth) * 3; double ellipseLeftMargin_2 = 0D; //((double)e.NewValue + mProgressBar.EllipseWidth) * 2; double ellipseLeftMargin_3 = 0D; // (double)e.NewValue + mProgressBar.EllipseWidth; double ellipseLeftMargin_4 = 0D; mProgressBar.EllipseLeftMargin_1 = new Thickness(ellipseLeftMargin_1, 0, 0, 0); mProgressBar.EllipseLeftMargin_2 = new Thickness(ellipseLeftMargin_2, 0, 0, 0); mProgressBar.EllipseLeftMargin_3 = new Thickness(ellipseLeftMargin_3, 0, 0, 0); mProgressBar.EllipseLeftMargin_4 = new Thickness(ellipseLeftMargin_4, 0, 0, 0); //OnEllipseWidthChanged(sender, e); }