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; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace FLY.ControlLibrary { /// <summary> /// PercentRing.xaml 的交互逻辑 /// </summary> public partial class PercentRing2 : UserControl, INotifyPropertyChanged { #region 附加属性 /// <summary> /// 比例 /// </summary> public static readonly DependencyProperty RatioProperty = DependencyProperty.Register("Ratio", typeof(double), typeof(PercentRing2), new PropertyMetadata(0.3, new PropertyChangedCallback(delegate (DependencyObject d, DependencyPropertyChangedEventArgs e) { }))); /// <summary> /// 比例 /// </summary> public double Ratio { get { return (double)GetValue(RatioProperty); } set { SetValue(RatioProperty, value); NotifyPropertyChanged("Ratio"); } } /// <summary> /// 总量 /// </summary> public static readonly DependencyProperty TotalProperty = DependencyProperty.Register("Total", typeof(double), typeof(PercentRing2), new PropertyMetadata(1.0)); /// <summary> /// 总量 /// </summary> public double Total { get { return (double)GetValue(RatioProperty); } set { if (value != Total) { SetValue(RatioProperty, value); NotifyPropertyChanged("Total"); } } } /// <summary> /// 颜色 /// </summary> public static readonly DependencyProperty ColorTextProperty = DependencyProperty.Register("ColorText", typeof(Brush), typeof(PercentRing2), new PropertyMetadata(new SolidColorBrush(Color.FromRgb(0x46,0x46,0x46)))); /// <summary> /// 颜色 /// </summary> public Brush ColorText { get { return (Brush)GetValue(ColorTextProperty); } set { if (value != ColorText) { SetValue(ColorTextProperty, value); NotifyPropertyChanged("ColorText"); } } } /// <summary> /// /// </summary> public static readonly DependencyProperty ColorUnitProperty = DependencyProperty.Register("ColorUnit", typeof(Brush), typeof(PercentRing2), new PropertyMetadata(new SolidColorBrush(Color.FromRgb(0x46, 0x46, 0x46)))); /// <summary> /// /// </summary> public Brush ColorUnit { get { return (Brush)GetValue(ColorUnitProperty); } set { if (value != ColorUnit) { SetValue(ColorUnitProperty, value); NotifyPropertyChanged("ColorUnit"); } } } #endregion public PercentRing2() { InitializeComponent(); //this.DataContext = this; Draw(); } void Draw() { arc_value.DataContext = this; } #region INotifyPropertyChanged 成员 public void NotifyPropertyChanged(string propertyName) { if (PropertyChanged != null) PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public event PropertyChangedEventHandler PropertyChanged; #endregion } }