Browse Source

Apply own control theme before templated parent's.

pull/8263/head
Steven Kirk 4 years ago
parent
commit
19703360f7
  1. 10
      src/Avalonia.Base/Styling/Styler.cs

10
src/Avalonia.Base/Styling/Styler.cs

@ -8,14 +8,14 @@ namespace Avalonia.Styling
{
_ = target ?? throw new ArgumentNullException(nameof(target));
// If the control has a themed templated parent then first apply the styles from
// the templated parent theme.
// Apply the control theme.
target.GetEffectiveTheme()?.TryAttach(target, target);
// If the control has a themed templated parent then apply the styles from the
// templated parent theme.
if (target.TemplatedParent is IStyleable styleableParent)
styleableParent.GetEffectiveTheme()?.TryAttach(target, styleableParent);
// Next apply the control theme.
target.GetEffectiveTheme()?.TryAttach(target, target);
// Apply styles from the rest of the tree.
if (target is IStyleHost styleHost)
ApplyStyles(target, styleHost);

Loading…
Cancel
Save