Avalonia DataGrid 行颜色变化(根据内容 OR 隔行变色)
1. 根据内容进行行颜色的变化,并且颜色根据主题变化;
/// <summary>
/// 行背景颜色
/// </summary>
private void Dg_Train_LoadingRow(object? sender, DataGridRowEventArgs e)
{if (e.Row.DataContext is CustomModel cm){switch (cm.state){case "State1":{Avalonia.Application.Current!.TryGetResource("bg_working", Avalonia.Application.Current!.ActualThemeVariant, out var o);e.Row.Background = new SolidColorBrush(Color.Parse(o?.ToString() ?? "#FFF")); break;}case "State2":{Avalonia.Application.Current!.TryGetResource("bg_done", Avalonia.Application.Current!.ActualThemeVariant, out var o);e.Row.Background = new SolidColorBrush(Color.Parse(o?.ToString() ?? "#FFF")); break;}default: e.Row.Background = new SolidColorBrush(Colors.Transparent); break;}}
}
2. 隔行变色
<Style Selector="DataGridRow:nth-child(2n+1)">
<!--这是隔行变色-->
<Setter Property="Background"Value="#FFCOFOE8"/>
</Style>