1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Globalization;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Controls.Primitives;
- using System.Windows.Data;
- using System.Windows.Media;
- using System.Windows;
- namespace Venus_Themes.CustomControls
- {
- public class RingProgress : RangeBase
- {
- static RingProgress()
- {
- DefaultStyleKeyProperty.OverrideMetadata(typeof(RingProgress), new FrameworkPropertyMetadata(typeof(RingProgress)));
- }
- #region StrokeThickness 圆环描边宽度
- public static readonly DependencyProperty StrokeThicknessProperty =
- DependencyProperty.Register("StrokeThickness", typeof(double), typeof(RingProgress), new PropertyMetadata(10d));
- public double StrokeThickness
- {
- get { return (double)GetValue(StrokeThicknessProperty); }
- set { SetValue(StrokeThicknessProperty, value); }
- }
- #endregion
- #region Stroke 圆环描边颜色
- public static readonly DependencyProperty StrokeProperty =
- DependencyProperty.Register("Stroke", typeof(Brush), typeof(RingProgress), new PropertyMetadata(Brushes.Red));
- public Brush Stroke
- {
- get { return (Brush)GetValue(StrokeProperty); }
- set { SetValue(StrokeProperty, value); }
- }
- #endregion
- }
- internal static class RingProgressExtension
- {
- /// <summary>
- /// 角度转为弧度
- /// </summary>
- /// <param name="a"></param>
- /// <returns></returns>
- public static double AngleToArc(this double a)
- {
- return Math.PI * a / 180;
- }
- /// <summary>
- /// 角度及半径计算坐标点位置
- /// </summary>
- /// <param name="a"></param>
- /// <param name="radius"></param>
- /// <param name="offset"></param>
- /// <returns></returns>
- public static Point AngleToPoint(this double a, double radius, double offset = 0)
- {
- return new Point(Math.Cos(a.AngleToArc()) * radius + radius + offset, Math.Sin(a.AngleToArc()) * radius + radius + offset);
- }
- }
- }
|