using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
namespace XFEEDToolBox.Controls;
public sealed class MaterialIcon : UserControl
{
public static readonly DependencyProperty CategoryProperty=DependencyProperty.Register(nameof(Category),typeof(string),typeof(MaterialIcon),new PropertyMetadata("",Changed));
public string Category{get=>(string)GetValue(CategoryProperty);set=>SetValue(CategoryProperty,value);}
private readonly Image icon=new(){Stretch=Stretch.Uniform};
public MaterialIcon(){Width=32;Height=32;Content=icon;}
private static void Changed(DependencyObject d,DependencyPropertyChangedEventArgs e)=>((MaterialIcon)d).Update();
private void Update()
{
var category=Category.ToLowerInvariant();
var name=category switch{"raw"=>"原始材料","manufactured"=>"制造材料","encoded"=>"编码数据",_=>"材料类别未记录"};
icon.Source=category is "raw" or "manufactured" or "encoded"?new SvgImageSource(new Uri($"ms-appx:///Assets/Materials/Categories/{category}.svg")):null;
ToolTipService.SetToolTip(this,name);Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this,name);
}
}
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
namespace XFEEDToolBox.Controls;
public sealed class MaterialIcon : UserControl
{
public static readonly DependencyProperty CategoryProperty=DependencyProperty.Register(nameof(Category),typeof(string),typeof(MaterialIcon),new PropertyMetadata("",Changed));
public string Category{get=>(string)GetValue(CategoryProperty);set=>SetValue(CategoryProperty,value);}
private readonly Image icon=new(){Stretch=Stretch.Uniform};
public MaterialIcon(){Width=32;Height=32;Content=icon;}
private static void Changed(DependencyObject d,DependencyPropertyChangedEventArgs e)=>((MaterialIcon)d).Update();
private void Update()
{
var category=Category.ToLowerInvariant();
var name=category switch{"raw"=>"原始材料","manufactured"=>"制造材料","encoded"=>"编码数据",_=>"材料类别未记录"};
icon.Source=category is "raw" or "manufactured" or "encoded"?new SvgImageSource(new Uri($"ms-appx:///Assets/Materials/Categories/{category}.svg")):null;
ToolTipService.SetToolTip(this,name);Microsoft.UI.Xaml.Automation.AutomationProperties.SetName(this,name);
}
}