diff --git a/.gitignore b/.gitignore
index 2b2c9c3d0d..971c945246 100644
--- a/.gitignore
+++ b/.gitignore
@@ -196,3 +196,5 @@ ModuleCache.noindex/
Build/Intermediates.noindex/
info.plist
build-intermediate
+obj-Direct2D1/
+obj-Skia/
diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
index ec668f2a2b..df840464c1 100644
--- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
+++ b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
@@ -150,7 +150,8 @@ namespace Avalonia.Build.Tasks
classType = typeSystem.TargetAssembly.FindType(tn.Text);
if (classType == null)
throw new XamlIlParseException($"Unable to find type `{tn.Text}`", classDirective);
- initialRoot.Type = new XamlIlAstClrTypeReference(classDirective, classType, false);
+ compiler.OverrideRootType(parsed,
+ new XamlIlAstClrTypeReference(classDirective, classType, false));
initialRoot.Children.Remove(classDirective);
}
diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs
index bbea3693cc..0e696e0199 100644
--- a/src/Avalonia.Controls/Application.cs
+++ b/src/Avalonia.Controls/Application.cs
@@ -362,7 +362,7 @@ namespace Avalonia
}
///
- bool IResourceProvider.TryGetResource(string key, out object value)
+ bool IResourceProvider.TryGetResource(object key, out object value)
{
value = null;
return (_resources?.TryGetResource(key, out value) ?? false) ||
diff --git a/src/Avalonia.Controls/Expander.cs b/src/Avalonia.Controls/Expander.cs
index f0ba2b5578..1fa9798784 100644
--- a/src/Avalonia.Controls/Expander.cs
+++ b/src/Avalonia.Controls/Expander.cs
@@ -13,18 +13,11 @@ namespace Avalonia.Controls
public class Expander : HeaderedContentControl
{
- public static readonly DirectProperty ContentTransitionProperty =
- AvaloniaProperty.RegisterDirect(
- nameof(ContentTransition),
- o => o.ContentTransition,
- (o, v) => o.ContentTransition = v);
+ public static readonly StyledProperty ContentTransitionProperty =
+ AvaloniaProperty.Register(nameof(ContentTransition));
- public static readonly DirectProperty ExpandDirectionProperty =
- AvaloniaProperty.RegisterDirect(
- nameof(ExpandDirection),
- o => o.ExpandDirection,
- (o, v) => o.ExpandDirection = v,
- ExpandDirection.Down);
+ public static readonly StyledProperty ExpandDirectionProperty =
+ AvaloniaProperty.Register(nameof(ExpandDirection), ExpandDirection.Down);
public static readonly DirectProperty IsExpandedProperty =
AvaloniaProperty.RegisterDirect(
@@ -33,6 +26,8 @@ namespace Avalonia.Controls
(o, v) => o.IsExpanded = v,
defaultBindingMode: Data.BindingMode.TwoWay);
+ private bool _isExpanded;
+
static Expander()
{
PseudoClass(ExpandDirectionProperty, d => d == ExpandDirection.Down, ":down");
@@ -47,14 +42,14 @@ namespace Avalonia.Controls
public IPageTransition ContentTransition
{
- get { return _contentTransition; }
- set { SetAndRaise(ContentTransitionProperty, ref _contentTransition, value); }
+ get => GetValue(ContentTransitionProperty);
+ set => SetValue(ContentTransitionProperty, value);
}
public ExpandDirection ExpandDirection
{
- get { return _expandDirection; }
- set { SetAndRaise(ExpandDirectionProperty, ref _expandDirection, value); }
+ get => GetValue(ExpandDirectionProperty);
+ set => SetValue(ExpandDirectionProperty, value);
}
public bool IsExpanded
@@ -79,9 +74,5 @@ namespace Avalonia.Controls
}
}
}
-
- private IPageTransition _contentTransition;
- private ExpandDirection _expandDirection;
- private bool _isExpanded;
}
}
diff --git a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs
index 280c3ad93a..dcde8117f6 100644
--- a/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs
+++ b/src/Avalonia.Controls/Primitives/SelectingItemsControl.cs
@@ -644,20 +644,20 @@ namespace Avalonia.Controls.Primitives
/// The desired items.
internal static void SynchronizeItems(IList items, IEnumerable