Files
Ursa.Avalonia/demo/Ursa.Demo/TemplateSelectors/TimelineIconTemplateSelector.cs
2024-01-05 00:08:15 +08:00

34 lines
823 B
C#

using Avalonia.Controls;
using Avalonia.Controls.Shapes;
using Avalonia.Controls.Templates;
using Avalonia.Media;
using Ursa.Controls;
namespace Ursa.Demo.TemplateSelectors;
public class TimelineIconTemplateSelector: ResourceDictionary, IDataTemplate
{
public Control? Build(object? param)
{
if (param is TimelineItemType t)
{
string s = t.ToString();
if (ContainsKey(s))
{
object? o = this[s];
if (o is SolidColorBrush c)
{
var ellipse = new Ellipse() { Width = 12, Height = 12, Fill = c };
return ellipse;
}
}
}
return null;
}
public bool Match(object? data)
{
return data is TimelineItemType;
}
}