diff --git a/src/Avalonia.Controls/Avalonia.Controls.csproj b/src/Avalonia.Controls/Avalonia.Controls.csproj
index c181aab1e2..3f8985aa12 100644
--- a/src/Avalonia.Controls/Avalonia.Controls.csproj
+++ b/src/Avalonia.Controls/Avalonia.Controls.csproj
@@ -56,7 +56,6 @@
-
@@ -65,9 +64,6 @@
-
-
-
diff --git a/src/Avalonia.Styling/Avalonia.Styling.csproj b/src/Avalonia.Styling/Avalonia.Styling.csproj
index 6a32441ad6..5117aeb8c3 100644
--- a/src/Avalonia.Styling/Avalonia.Styling.csproj
+++ b/src/Avalonia.Styling/Avalonia.Styling.csproj
@@ -43,13 +43,17 @@
Properties\SharedAssemblyInfo.cs
+
+
+
+
@@ -93,6 +97,10 @@
+
+ {d211e587-d8bc-45b9-95a4-f297c8fa5200}
+ Avalonia.Animation
+
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}
Avalonia.Base
diff --git a/src/Avalonia.Controls/INameScope.cs b/src/Avalonia.Styling/Controls/INameScope.cs
similarity index 100%
rename from src/Avalonia.Controls/INameScope.cs
rename to src/Avalonia.Styling/Controls/INameScope.cs
diff --git a/src/Avalonia.Controls/NameScope.cs b/src/Avalonia.Styling/Controls/NameScope.cs
similarity index 93%
rename from src/Avalonia.Controls/NameScope.cs
rename to src/Avalonia.Styling/Controls/NameScope.cs
index aeba4158ef..ddfb3ea173 100644
--- a/src/Avalonia.Controls/NameScope.cs
+++ b/src/Avalonia.Styling/Controls/NameScope.cs
@@ -15,7 +15,7 @@ namespace Avalonia.Controls
/// Defines the NameScope attached property.
///
public static readonly AttachedProperty NameScopeProperty =
- AvaloniaProperty.RegisterAttached("NameScope");
+ AvaloniaProperty.RegisterAttached("NameScope");
private readonly Dictionary _inner = new Dictionary();
@@ -34,7 +34,7 @@ namespace Avalonia.Controls
///
/// The visual.
/// The value of the NameScope attached property.
- public static INameScope GetNameScope(Control visual)
+ public static INameScope GetNameScope(Visual visual)
{
return visual.GetValue(NameScopeProperty);
}
@@ -44,7 +44,7 @@ namespace Avalonia.Controls
///
/// The visual.
/// The value to set.
- public static void SetNameScope(Control visual, INameScope value)
+ public static void SetNameScope(Visual visual, INameScope value)
{
visual.SetValue(NameScopeProperty, value);
}
diff --git a/src/Avalonia.Controls/NameScopeEventArgs.cs b/src/Avalonia.Styling/Controls/NameScopeEventArgs.cs
similarity index 100%
rename from src/Avalonia.Controls/NameScopeEventArgs.cs
rename to src/Avalonia.Styling/Controls/NameScopeEventArgs.cs
diff --git a/src/Avalonia.Controls/NameScopeExtensions.cs b/src/Avalonia.Styling/Controls/NameScopeExtensions.cs
similarity index 100%
rename from src/Avalonia.Controls/NameScopeExtensions.cs
rename to src/Avalonia.Styling/Controls/NameScopeExtensions.cs
diff --git a/src/Avalonia.Styling/Styling/Setter.cs b/src/Avalonia.Styling/Styling/Setter.cs
index 1d45f22b65..7f696a1f0a 100644
--- a/src/Avalonia.Styling/Styling/Setter.cs
+++ b/src/Avalonia.Styling/Styling/Setter.cs
@@ -4,6 +4,7 @@
using System;
using System.Reactive.Disposables;
using System.Reactive.Subjects;
+using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Metadata;
using Avalonia.Reactive;
@@ -100,7 +101,9 @@ namespace Avalonia.Styling
if (template != null)
{
- value = template.Build();
+ var materialized = template.Build();
+ NameScope.SetNameScope((Visual)materialized, new NameScope());
+ value = materialized;
}
if (activator == null)
diff --git a/tests/Avalonia.Styling.UnitTests/SetterTests.cs b/tests/Avalonia.Styling.UnitTests/SetterTests.cs
index e6af3b2c0c..4de90b7790 100644
--- a/tests/Avalonia.Styling.UnitTests/SetterTests.cs
+++ b/tests/Avalonia.Styling.UnitTests/SetterTests.cs
@@ -48,5 +48,18 @@ namespace Avalonia.Styling.UnitTests
Assert.IsType