perf(controls): reduce allocation and state sync overhead

This commit is contained in:
chinboy
2026-05-29 17:40:13 +08:00
parent 6f4bbdc064
commit 915deff4eb
94 changed files with 2614 additions and 757 deletions
+18 -4
View File
@@ -311,13 +311,24 @@ public class TextBox : AvaloniaTextBox,
void ICompactSpaceAware.NotifyPositionChange(SpaceItemPosition? position)
{
IsUsedInCompactSpace = position != null;
CompactSpaceItemPosition = position;
var isUsedInCompactSpace = position != null;
if (IsUsedInCompactSpace != isUsedInCompactSpace)
{
IsUsedInCompactSpace = isUsedInCompactSpace;
}
if (CompactSpaceItemPosition != position)
{
CompactSpaceItemPosition = position;
}
}
void ICompactSpaceAware.NotifyOrientationChange(Orientation orientation)
{
CompactSpaceOrientation = orientation;
if (CompactSpaceOrientation != orientation)
{
CompactSpaceOrientation = orientation;
}
}
double ICompactSpaceAware.GetBorderThickness()
@@ -371,7 +382,10 @@ public class TextBox : AvaloniaTextBox,
protected virtual void NotifySetFeedBackControl(FormValidateFeedback? value)
{
FormFeedback = value;
if (!ReferenceEquals(FormFeedback, value))
{
FormFeedback = value;
}
}
#endregion
}