using Microsoft.UI.Xaml.Automation;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
namespace XFEEDToolBox.Controls;
public sealed class MaterialGradeIcon : UserControl
{
public static readonly DependencyProperty GradeProperty=DependencyProperty.Register(nameof(Grade),typeof(int),typeof(MaterialGradeIcon),new PropertyMetadata(0,Changed));
public int Grade{get=>(int)GetValue(GradeProperty);set=>SetValue(GradeProperty,value);}
private readonly Image icon=new(){Stretch=Stretch.Uniform};
public MaterialGradeIcon(){Width=32;Height=28;Content=icon;}
private static void Changed(DependencyObject obj,DependencyPropertyChangedEventArgs args)=>((MaterialGradeIcon)obj).Update();
private void Update()
{
icon.Source=Grade is >=1 and <=5?new BitmapImage(new Uri($"ms-appx:///Assets/Materials/Grades/grade-{Grade}.png")):null;
var label=Grade is >=1 and <=5?$"G{Grade}":"等级未记录";
ToolTipService.SetToolTip(this,label);AutomationProperties.SetName(this,label);
}
}
using Microsoft.UI.Xaml.Automation;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
namespace XFEEDToolBox.Controls;
public sealed class MaterialGradeIcon : UserControl
{
public static readonly DependencyProperty GradeProperty=DependencyProperty.Register(nameof(Grade),typeof(int),typeof(MaterialGradeIcon),new PropertyMetadata(0,Changed));
public int Grade{get=>(int)GetValue(GradeProperty);set=>SetValue(GradeProperty,value);}
private readonly Image icon=new(){Stretch=Stretch.Uniform};
public MaterialGradeIcon(){Width=32;Height=28;Content=icon;}
private static void Changed(DependencyObject obj,DependencyPropertyChangedEventArgs args)=>((MaterialGradeIcon)obj).Update();
private void Update()
{
icon.Source=Grade is >=1 and <=5?new BitmapImage(new Uri($"ms-appx:///Assets/Materials/Grades/grade-{Grade}.png")):null;
var label=Grade is >=1 and <=5?$"G{Grade}":"等级未记录";
ToolTipService.SetToolTip(this,label);AutomationProperties.SetName(this,label);
}
}