Browse Source

Don't promote layout property values to local values.

When DevTools was opened, all layout property values were being promoted to `LocalValue`s because the `_updatingFromControl` flag was not being set during initialization, causing the initial values to be written back out to the control as local values.
pull/8409/head
Steven Kirk 4 years ago
parent
commit
bf7f50690f
  1. 28
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlLayoutViewModel.cs

28
src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlLayoutViewModel.cs

@ -30,20 +30,28 @@ namespace Avalonia.Diagnostics.ViewModels
if (control is AvaloniaObject ao)
{
MarginThickness = ao.GetValue(Layoutable.MarginProperty);
if (HasPadding)
try
{
PaddingThickness = ao.GetValue(Decorator.PaddingProperty);
}
_updatingFromControl = true;
MarginThickness = ao.GetValue(Layoutable.MarginProperty);
if (HasPadding)
{
PaddingThickness = ao.GetValue(Decorator.PaddingProperty);
}
if (HasBorder)
if (HasBorder)
{
BorderThickness = ao.GetValue(Border.BorderThicknessProperty);
}
HorizontalAlignment = ao.GetValue(Layoutable.HorizontalAlignmentProperty);
VerticalAlignment = ao.GetValue(Layoutable.VerticalAlignmentProperty);
}
finally
{
BorderThickness = ao.GetValue(Border.BorderThicknessProperty);
_updatingFromControl = false;
}
HorizontalAlignment = ao.GetValue(Layoutable.HorizontalAlignmentProperty);
VerticalAlignment = ao.GetValue(Layoutable.VerticalAlignmentProperty);
}
UpdateSize();

Loading…
Cancel
Save