Browse Source

Display control themes in devtools.

pull/8263/head
Steven Kirk 4 years ago
parent
commit
1d1ef5ca9f
  1. 8
      src/Avalonia.Base/Styling/ControlTheme.cs
  2. 11
      src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlDetailsViewModel.cs

8
src/Avalonia.Base/Styling/ControlTheme.cs

@ -51,6 +51,14 @@ namespace Avalonia.Styling
return result;
}
public override string ToString()
{
if (TargetType is not null)
return "ControlTheme: " + TargetType.Name;
else
return "ControlTheme";
}
internal override void SetParent(StyleBase? parent)
{
throw new InvalidOperationException("ControlThemes cannot be added as a nested style.");

11
src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlDetailsViewModel.cs

@ -67,8 +67,15 @@ namespace Avalonia.Diagnostics.ViewModels
var setters = new List<SetterViewModel>();
if (styleSource is Style style)
if (styleSource is StyleBase style)
{
var selector = style switch
{
Style s => s.Selector?.ToString(),
ControlTheme t => t.TargetType?.Name.ToString(),
_ => null,
};
foreach (var setter in style.Setters)
{
if (setter is Setter regularSetter
@ -105,7 +112,7 @@ namespace Avalonia.Diagnostics.ViewModels
}
}
AppliedStyles.Add(new StyleViewModel(appliedStyle, style.Selector?.ToString() ?? "No selector", setters));
AppliedStyles.Add(new StyleViewModel(appliedStyle, selector ?? "No selector", setters));
}
}

Loading…
Cancel
Save