Add Select style

This commit is contained in:
CHINBOY
2025-06-03 19:06:00 +08:00
parent 0e3f8ae09c
commit 242d7adb3c
2 changed files with 35 additions and 8 deletions
@@ -6,13 +6,11 @@
using System.Diagnostics;
using AtomUI.Controls.Utils;
using AtomUI.Data;
using AtomUI.Reactive;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Markup.Xaml.MarkupExtensions;
using Avalonia.Metadata;
using BindingFlags = System.Reflection.BindingFlags;
namespace AtomUI.Controls;
@@ -60,7 +58,7 @@ public abstract class DataGridBoundColumn : DataGridColumn
{
binding.Converter = DataGridValueConverter.Instance;
}
}
}
// Apply the new Binding to existing rows in the DataGrid
if (OwningGrid != null)
@@ -129,13 +129,42 @@ internal class DataGridRowTheme : BaseControlTheme
commonStyle.Add(frameStyle);
}
var hoverStyle = new Style(selector => selector.Nesting().Class(StdPseudoClass.PointerOver));
{
var frameStyle = new Style(selector => selector.Nesting().Template().Name(FramePart));
frameStyle.Add(Border.BackgroundProperty, DataGridTokenKey.TableRowHoverBg);
hoverStyle.Add(frameStyle);
var selectedStyle = new Style(selector => selector.Nesting().PropertyEquals(DataGridRow.IsSelectedProperty, true));
{
var frameStyle = new Style(selector => selector.Nesting().Template().Name(FramePart));
frameStyle.Add(Border.BackgroundProperty, DataGridTokenKey.TableSelectedRowBg);
selectedStyle.Add(frameStyle);
}
var hoverStyle = new Style(selector => selector.Nesting().Class(StdPseudoClass.PointerOver));
{
var frameStyle = new Style(selector => selector.Nesting().Template().Name(FramePart));
frameStyle.Add(Border.BackgroundProperty, DataGridTokenKey.TableSelectedRowHoverBg);
hoverStyle.Add(frameStyle);
}
selectedStyle.Add(hoverStyle);
commonStyle.Add(selectedStyle);
}
commonStyle.Add(hoverStyle);
{
var unSelectedStyle = new Style(selector => selector.Nesting().PropertyEquals(DataGridRow.IsSelectedProperty, false));
{
var frameStyle = new Style(selector => selector.Nesting().Template().Name(FramePart));
frameStyle.Add(Border.BackgroundProperty, DataGridTokenKey.TableBg);
unSelectedStyle.Add(frameStyle);
}
var hoverStyle = new Style(selector => selector.Nesting().Class(StdPseudoClass.PointerOver));
{
var frameStyle = new Style(selector => selector.Nesting().Template().Name(FramePart));
frameStyle.Add(Border.BackgroundProperty, DataGridTokenKey.TableRowHoverBg);
hoverStyle.Add(frameStyle);
}
unSelectedStyle.Add(hoverStyle);
commonStyle.Add(unSelectedStyle);
}
// 动画设置
var isMotionEnabledStyle = new Style(selector => selector.Nesting().PropertyEquals(DataGridRow.IsMotionEnabledProperty, true));