Add DataGridCell Alignment

This commit is contained in:
CHINBOY
2025-06-03 09:28:29 +08:00
parent 8abbfb4380
commit cde655e491
2 changed files with 15 additions and 5 deletions
@@ -10,6 +10,7 @@ using Avalonia.Controls.Metadata;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Shapes;
using Avalonia.Input;
using Avalonia.Layout;
using Avalonia.Rendering;
namespace AtomUI.Controls;
@@ -102,6 +103,12 @@ public class DataGridCell : ContentControl, ICustomHitTest
private Rectangle? _rightGridLine;
static DataGridCell()
{
HorizontalContentAlignmentProperty.OverrideDefaultValue<DataGridCell>(HorizontalAlignment.Left);
VerticalContentAlignmentProperty.OverrideDefaultValue<DataGridCell>(VerticalAlignment.Center);
}
/// <summary>
/// Builds the visual tree for the cell control when a new template is applied.
/// </summary>
@@ -62,11 +62,13 @@ internal class DataGridCellTheme : BaseControlTheme
var contentPresenter = new ContentPresenter()
{
Name = ContentPresenterPart
Name = ContentPresenterPart,
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Stretch,
};
CreateTemplateParentBinding(contentPresenter, ContentPresenter.MarginProperty, DataGridCell.PaddingProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.HorizontalAlignmentProperty, DataGridCell.HorizontalContentAlignmentProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.VerticalAlignmentProperty, DataGridCell.VerticalContentAlignmentProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.HorizontalContentAlignmentProperty, DataGridCell.HorizontalContentAlignmentProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.VerticalContentAlignmentProperty, DataGridCell.VerticalContentAlignmentProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.ContentProperty, DataGridCell.ContentProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.ContentTemplateProperty, DataGridCell.ContentTemplateProperty);
CreateTemplateParentBinding(contentPresenter, ContentPresenter.ForegroundProperty, DataGridCell.ForegroundProperty);
@@ -90,8 +92,9 @@ internal class DataGridCellTheme : BaseControlTheme
{
Name = RightGridLinePart,
VerticalAlignment = VerticalAlignment.Stretch,
Width = 1
};
Grid.SetColumn(contentPresenter, 1);
Grid.SetColumn(rightGridLine, 1);
rootLayout.Children.Add(rightGridLine);
frame.Child = rootLayout;
@@ -108,7 +111,7 @@ internal class DataGridCellTheme : BaseControlTheme
IsHitTestVisible = false,
};
var primaryFocusVisual = new Rectangle()
var primaryFocusVisual = new Rectangle
{
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Stretch,